﻿    :root {
      color-scheme: light;
      font-family: system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
      color: #1f2933;
      background: #eef2f7;
      --panel: #ffffff;
      --line: #d9dee7;
      --muted: #6b7280;
      --accent: #6d5dfc;
      --accent-soft: #f1efff;
      --danger: #ef4444;
      --good: #14794e;
      --warn: #b54708;
      --attack: #f97316;
      --attack-deep: #ea580c;
      --attack-soft: #fff4e8;
      --defense: #2563eb;
      --defense-deep: #1d4ed8;
      --defense-soft: #eef5ff;
    }

    * {
      box-sizing: border-box;
    }

    [hidden] {
      display: none !important;
    }

    body {
      margin: 0;
      min-height: 100vh;
      background: #eef2f7;
    }

    main {
      width: min(960px, 100%);
      margin: 0 auto;
      padding: 8px;
    }

    header {
      display: none;
      margin-bottom: 8px;
    }

    h1 {
      margin: 0 0 6px;
      font-size: 18px;
      line-height: 1.15;
    }

    .lead {
      display: none;
      margin: 0;
      color: #526070;
      line-height: 1.6;
    }

    .layout {
      display: flex;
      flex-direction: column;
      gap: 10px;
    }

    .top-shell {
      display: grid;
      grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
      gap: 8px;
      align-items: start;
    }

    section {
      background: var(--panel);
      border: 1px solid var(--line);
      border-radius: 2px;
      padding: 8px;
      box-shadow: none;
    }

    h2 {
      margin: 0 0 8px;
      font-size: 14px;
    }

    .matchup-strip {
      display: none;
      grid-template-columns: 1fr auto 1fr auto;
      gap: 8px;
      align-items: center;
      margin: 10px 0 0;
      padding: 10px;
      border: 1px solid var(--line);
      border-radius: 2px;
      background: var(--panel);
      box-shadow: none;
    }

    .matchup-side {
      min-width: 0;
    }

    .matchup-label {
      margin: 0 0 2px;
      color: var(--muted);
      font-size: 12px;
      font-weight: 800;
    }

    .matchup-name {
      margin: 0;
      font-size: 15px;
      font-weight: 900;
      overflow: hidden;
      text-overflow: ellipsis;
      white-space: nowrap;
    }

    .matchup-arrow {
      color: var(--accent);
      font-weight: 900;
    }

    .input-groups {
      display: grid;
      grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
      grid-template-areas:
        "attacker defender";
      gap: 10px;
      align-items: start;
    }

    .input-group[data-group="attacker"] {
      grid-area: attacker;
    }

    .input-group[data-group="move"] {
      grid-area: move;
    }

    .input-group[data-group="defender"] {
      grid-area: defender;
    }

    .input-group[data-group="field"] {
      grid-area: field;
    }

    .input-group[data-group="attacker"],
    .input-group[data-group="move"],
    .input-group[data-group="field"] {
      grid-column: 1;
    }

    .input-group[data-group="defender"] {
      grid-column: 2;
      grid-row: 1;
    }

    .input-group[data-group="field"] {
      display: none;
    }

    #inputSection {
      background: transparent;
      border: 0;
      padding: 0;
      box-shadow: none;
    }

    #inputSection > h2 {
      display: none;
    }

    details.input-group {
      border: 0;
      border-radius: 12px;
      background: #ffffff;
      overflow: hidden;
      box-shadow: 0 1px 2px rgb(15 23 42 / 6%);
    }

    details.input-group[open] > summary.input-group-title {
      border-bottom: 0;
    }

    details.input-group[open] {
      background: var(--panel);
    }

    summary.input-group-title {
      min-height: 30px;
      display: flex;
      align-items: center;
      justify-content: space-between;
      gap: 8px;
      padding: 0 2px 6px;
      font-size: 23px;
      font-weight: 500;
      letter-spacing: 0;
      cursor: default;
      list-style: none;
      user-select: none;
    }

    .input-group[data-group="attacker"] summary.input-group-title,
    .input-group[data-group="defender"] summary.input-group-title {
      background: #eef2f7;
    }

    .input-group[data-group="attacker"] summary.input-group-title::before,
    .input-group[data-group="defender"] summary.input-group-title::before {
      content: "";
      width: 10px;
      height: 19px;
      display: inline-block;
      margin-right: -2px;
      clip-path: polygon(58% 0, 16% 44%, 48% 44%, 29% 100%, 84% 35%, 52% 35%);
      background: var(--danger);
    }

    .input-group[data-group="defender"] summary.input-group-title::before {
      border-radius: 9px 9px 3px 3px;
      clip-path: none;
      background: var(--accent);
    }

    .input-group[data-group="move"] summary.input-group-title {
      background: #f5f5f5;
    }

    .input-group[data-group="field"] summary.input-group-title {
      background: #f5f5f5;
    }

    summary.input-group-title::-webkit-details-marker {
      display: none;
    }

    summary.input-group-title::after {
      content: "+";
      width: 22px;
      height: 22px;
      display: inline-grid;
      place-items: center;
      border-radius: 999px;
      background: transparent;
      color: #6b7280;
      font-weight: 900;
      flex: 0 0 auto;
      display: none;
    }

    details.input-group[open] summary.input-group-title::after {
      content: "-";
    }

    .input-group-body {
      padding: 8px 10px 12px;
      border-top: 0;
    }

    .calc-card-head {
      display: grid;
      grid-template-columns: 48px minmax(0, 1fr) 24px;
      gap: 8px;
      align-items: center;
      margin: -2px 0 8px;
      padding: 6px;
      border-bottom: 0;
      border-radius: 8px;
      background: #f8fafc;
    }

    .calc-card-icon {
      width: 48px;
      aspect-ratio: 1;
      display: grid;
      place-items: center;
      border: 0;
      border-radius: 7px;
      background: #ffffff;
      color: #46515f;
      font-size: 22px;
      font-weight: 900;
      overflow: hidden;
    }

    .calc-card-icon img {
      width: 100%;
      height: 100%;
      object-fit: contain;
      image-rendering: auto;
    }

    .calc-card-title {
      margin: 0 0 4px;
      font-size: 13px;
      font-weight: 900;
      line-height: 1.2;
      overflow: hidden;
      text-overflow: ellipsis;
      white-space: nowrap;
    }

    .matchup-tools {
      display: flex;
      justify-content: flex-end;
      align-items: center;
    }

    .history-toggle-button {
      border: 1px solid var(--line);
      background: #fff;
      color: #0f172a;
      border-radius: 999px;
      padding: 7px 12px;
      font-size: 12px;
      font-weight: 700;
      line-height: 1;
    }

    .calc-card-sub {
      margin: 0;
      color: var(--muted);
      font-size: 9px;
      line-height: 1.5;
    }

    .calc-card-stats {
      margin: 2px 0 0;
      color: #374151;
      font-size: 9px;
      font-weight: 700;
      line-height: 1.4;
    }

    .stat-mini-table {
      display: none;
      grid-template-columns: repeat(6, minmax(0, 1fr));
      margin-bottom: 8px;
      border: 1px solid var(--line);
      border-right: 0;
      border-bottom: 0;
      background: #ffffff;
    }

    .stat-mini-cell {
      min-height: 34px;
      display: grid;
      place-items: center;
      gap: 1px;
      border-right: 1px solid var(--line);
      border-bottom: 1px solid var(--line);
      padding: 4px 2px;
      font-size: 11px;
      line-height: 1.15;
    }

    .stat-mini-label {
      color: var(--muted);
      font-weight: 800;
    }

    .stat-mini-value {
      color: #111827;
      font-size: 14px;
      font-weight: 900;
    }

    .move-card-head {
      display: grid;
      gap: 4px;
      margin: -2px 0 8px;
      padding: 0 4px 8px;
      border: 0;
      border-bottom: 1px solid var(--line);
      border-radius: 0;
      background: transparent;
    }

    .move-card-title {
      display: none;
    }

    .move-card-sub {
      margin: 0;
      color: #111827;
      font-size: 13px;
      font-weight: 800;
    }

    .move-slots {
      display: none;
      grid-template-columns: repeat(2, minmax(0, 1fr));
      gap: 6px;
      margin-bottom: 8px;
    }

    .move-slot {
      min-height: 34px;
      border: 1px solid var(--line);
      border-radius: 2px;
      background: #ffffff;
      color: #1f2933;
      font-size: 12px;
      font-weight: 800;
      text-align: left;
      padding: 6px 7px;
      cursor: pointer;
    }

    .move-slot[aria-current="true"] {
      border-color: #2f6fbc;
      background: #eef4fb;
    }

    .section-divider {
      grid-column: 1 / -1;
      display: grid;
      grid-template-columns: 1fr auto 1fr;
      align-items: center;
      gap: 8px;
      margin: 10px 0 2px;
      color: #111827;
      font-size: 12px;
      font-weight: 900;
    }

    .section-divider::before,
    .section-divider::after {
      content: "";
      height: 1px;
      background: var(--line);
    }

    .quick-row {
      grid-column: 1 / -1;
      display: grid;
      grid-template-columns: repeat(3, minmax(0, 1fr));
      gap: 6px;
    }

    .quick-button {
      min-height: 30px;
      border: 1px solid #d7dce5;
      border-radius: 999px;
      background: #ffffff;
      color: #1f2933;
      font-size: 12px;
      font-weight: 800;
      cursor: pointer;
    }

    .sp-panel {
      grid-column: 1 / -1;
      display: grid;
      gap: 12px;
      padding: 0;
      border: 0;
      border-radius: 0;
      background: #ffffff;
    }

    .sp-panel-title {
      margin: 6px 0 0;
      color: #1f2933;
      font-size: 13px;
      font-weight: 900;
    }

    .sp-presets {
      display: grid;
      grid-template-columns: repeat(4, minmax(0, 1fr));
      gap: 6px;
      padding-bottom: 8px;
      border-bottom: 1px solid var(--line);
    }

    .stat-tuner {
      display: grid;
      gap: 10px;
      padding: 12px 0;
      border-top: 1px solid var(--line);
    }

    .stat-tuner:first-of-type {
      border-top: 0;
      padding-top: 0;
    }

    .stat-tuner-head {
      display: grid;
      grid-template-columns: minmax(0, 1fr) minmax(0, 1fr) 96px;
      gap: 8px;
      align-items: end;
    }

    .stat-readout-label {
      margin: 0 0 4px;
      color: #475569;
      font-size: 10px;
      font-weight: 800;
    }

    .stat-readout-value {
      margin: 0;
      color: #0f172a;
      font-size: 22px;
      font-weight: 950;
      line-height: 1;
    }

    .stat-readout-value.small {
      font-size: 18px;
    }

    .sp-range-row,
    .rank-range-row {
      display: grid;
      grid-template-columns: minmax(0, 1fr) 28px 28px;
      gap: 10px;
      align-items: center;
      touch-action: none;
      user-select: none;
      padding: 0 4px;
    }

    input[type="range"].sp-range,
    input[type="range"].rank-range {
      width: 100%;
      height: 34px;
      touch-action: none;
      accent-color: var(--danger);
      cursor: pointer;
      -webkit-appearance: none;
      appearance: none;
      background: transparent;
    }

    .rank-range {
      accent-color: #2f6fbc;
    }

    input[type="range"].sp-range::-webkit-slider-runnable-track,
    input[type="range"].rank-range::-webkit-slider-runnable-track {
      height: 8px;
      border-radius: 999px;
      background: #e5e7eb;
    }

    input[type="range"].sp-range::-webkit-slider-thumb,
    input[type="range"].rank-range::-webkit-slider-thumb {
      width: 28px;
      height: 28px;
      margin-top: -10px;
      border: 3px solid #ffffff;
      border-radius: 999px;
      background: var(--danger);
      box-shadow: 0 2px 8px rgb(15 23 42 / 24%);
      -webkit-appearance: none;
      appearance: none;
    }

    input[type="range"].rank-range::-webkit-slider-thumb {
      background: #2f6fbc;
    }

    input[type="range"].sp-range::-moz-range-track,
    input[type="range"].rank-range::-moz-range-track {
      height: 8px;
      border-radius: 999px;
      background: #e5e7eb;
    }

    input[type="range"].sp-range::-moz-range-thumb,
    input[type="range"].rank-range::-moz-range-thumb {
      width: 28px;
      height: 28px;
      border: 3px solid #ffffff;
      border-radius: 999px;
      background: var(--danger);
      box-shadow: 0 2px 8px rgb(15 23 42 / 24%);
    }

    input[type="range"].rank-range::-moz-range-thumb {
      background: #2f6fbc;
    }

    .native-range {
      position: absolute;
      width: 1px !important;
      height: 1px !important;
      opacity: 0;
      pointer-events: none;
    }

    .range-control {
      position: relative;
      height: 34px;
      display: grid;
      align-items: center;
      cursor: pointer;
      touch-action: none;
      margin: 0 14px;
    }

    .range-control::before {
      content: "";
      display: block;
      height: 8px;
      border-radius: 999px;
      background: #e5e7eb;
    }

    .range-control span {
      position: absolute;
      left: 0;
      top: 50%;
      width: 0%;
      height: 8px;
      border-radius: 999px;
      background: var(--danger);
      transform: translateY(-50%);
    }

    .range-control span::after {
      content: "";
      position: absolute;
      right: -14px;
      top: 50%;
      width: 28px;
      height: 28px;
      border: 3px solid #ffffff;
      border-radius: 999px;
      background: var(--danger);
      box-shadow: 0 2px 8px rgb(15 23 42 / 24%);
      transform: translateY(-50%);
    }

    .input-group[data-group="attacker"] .range-control span,
    .input-group[data-group="attacker"] .range-control span::after {
      background: var(--attack);
    }

    .input-group[data-group="defender"] .range-control span,
    .input-group[data-group="defender"] .range-control span::after {
      background: var(--defense);
    }

    .step-button {
      width: 24px;
      height: 24px;
      border: 0;
      border-radius: 999px;
      background: transparent;
      color: #475569;
      font-size: 18px;
      font-weight: 800;
      line-height: 1;
      cursor: pointer;
    }

    .nature-chip-row {
      display: grid;
      grid-template-columns: repeat(3, minmax(0, 1fr));
      overflow: hidden;
      border: 1px solid #d7d7d7;
      border-radius: 999px;
      background: #fff;
    }

    .nature-chip {
      min-height: 34px;
      border: 0;
      border-right: 1px solid #d7d7d7;
      background: #fff;
      color: #64748b;
      font-size: 15px;
      font-weight: 900;
      cursor: pointer;
    }

    .nature-chip:last-child {
      border-right: 0;
    }

    .nature-chip[aria-pressed="true"] {
      background: #eeeeee;
      color: #111827;
    }

    .tuner-subgrid {
      display: grid;
      grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
      gap: 10px;
    }

    .sp-note {
      margin: 0;
      color: var(--muted);
      font-size: 11px;
      line-height: 1.5;
    }

    .field-grid {
      display: grid;
      grid-template-columns: 1fr;
      gap: 8px;
    }

    .input-group[data-group="attacker"] .field-grid,
    .input-group[data-group="move"] .field-grid,
    .input-group[data-group="defender"] .field-grid {
      grid-template-columns: 1fr;
    }

    .input-group[data-group="move"] .field:has(#movePreset),
    .input-group[data-group="attacker"] .field:has(#attackerPreset),
    .input-group[data-group="defender"] .field:has(#defenderPreset) {
      grid-column: 1 / -1;
    }

    .input-group[data-group="attacker"] .field:has(#movePreset) {
      grid-column: 1 / -1;
    }

    .input-group[data-group="attacker"] .field:has(#attack),
    .input-group[data-group="attacker"] .field:has(#attackStage),
    .input-group[data-group="move"] .field:has(#level),
    .input-group[data-group="move"] .field:has(#power),
    .input-group[data-group="move"] .field:has(#moveType),
    .input-group[data-group="move"] .field:has(#moveCategory),
    .input-group[data-group="move"] .field:has(#stab),
    .input-group[data-group="move"] .field:has(#typeEffectiveness) {
      display: none;
    }

    .input-group[data-group="attacker"] .field:has(#level),
    .input-group[data-group="attacker"] .field:has(#power),
    .input-group[data-group="attacker"] .field:has(#moveType),
    .input-group[data-group="attacker"] .field:has(#moveCategory),
    .input-group[data-group="attacker"] .field:has(#stab),
    .input-group[data-group="attacker"] .field:has(#typeEffectiveness) {
      display: none;
    }

    .input-group[data-group="defender"] .field:has(#hp),
    .input-group[data-group="defender"] .field:has(#defense),
    .input-group[data-group="defender"] .field:has(#defenseStage) {
      display: grid;
    }

    .input-group[data-group="attacker"] .field:has(#attackerSp),
    .input-group[data-group="attacker"] .field:has(#attackerNature),
    .input-group[data-group="attacker"] .field:has(#attackStage),
    .input-group[data-group="defender"] .field:has(#defenderNature),
    .input-group[data-group="defender"] .field:has(#defenderHpSp),
    .input-group[data-group="defender"] .field:has(#defenderDefenseSp),
    .input-group[data-group="defender"] .field:has(#defenseStage),
    .input-group[data-group="defender"] .field:has(#hp),
    .input-group[data-group="defender"] .field:has(#defense) {
      display: none;
    }

    .input-group[data-group="attacker"],
    .input-group[data-group="defender"] {
      border-color: #bfd2ea;
    }

    .input-group[data-group="move"] {
      border-color: #c8decf;
    }

    .input-group[data-group="field"] {
      border-color: #ddd2bf;
    }

    .field {
      display: grid;
      gap: 3px;
      margin-bottom: 0;
    }

    label {
      color: #6b7280;
      font-size: 10px;
      font-weight: 700;
    }

    input,
    select {
      min-height: 42px;
      border: 1px solid #d7dce5;
      border-radius: 10px;
      background: #ffffff;
      color: #111827;
      padding: 0 12px;
      font-size: 13px;
      font-weight: 500;
    }

    input[type="checkbox"] {
      min-height: 0;
      width: 16px;
      height: 16px;
      accent-color: var(--accent);
      padding: 0;
    }

    .checkbox-row {
      display: flex;
      flex-wrap: wrap;
      gap: 10px 14px;
      align-items: center;
      min-height: 32px;
    }

    .checkbox-control {
      display: inline-flex;
      gap: 5px;
      align-items: center;
      color: #374151;
      font-size: 12px;
      font-weight: 700;
    }

    .field.has-checkbox-select > select {
      display: none;
    }

    .select-search {
      min-height: 34px;
      border-color: #bdbdbd;
      background: #fff;
      font-weight: 600;
      font-size: 14px;
    }

    .select-search::placeholder {
      color: #8a96a8;
      font-weight: 500;
    }

    .search-hit {
      min-height: 22px;
      margin: -2px 0 0;
      color: var(--muted);
      font-size: 12px;
      line-height: 1.4;
    }

    .field:has(.select-search) select {
      min-height: 30px;
      color: #526070;
      background: #f7f9fc;
      font-size: 12px;
    }

    .field:has(.picker-button) select,
    .field:has(.picker-button) .select-search,
    .field:has(.picker-button) .search-hit {
      display: none;
    }

    .picker-button {
      width: 100%;
      min-height: 42px;
      display: grid;
      grid-template-columns: minmax(0, 1fr) auto;
      align-items: center;
      gap: 8px;
      border: 1px solid #d7dce5;
      border-radius: 10px;
      padding: 7px 12px;
      background: #ffffff;
      color: #1f2933;
      font: inherit;
      font-weight: 700;
      text-align: left;
      cursor: pointer;
    }

    .picker-button::after {
      content: "⌕";
      color: #64748b;
      font-size: 16px;
      font-weight: 800;
    }

    .picker-button span {
      overflow: hidden;
      text-overflow: ellipsis;
      white-space: nowrap;
    }

    .picker-overlay {
      position: fixed;
      inset: 0;
      z-index: 100;
      display: none;
      background: rgba(17, 24, 39, 0.32);
      padding: 12px;
    }

    .picker-overlay[aria-hidden="false"] {
      display: grid;
      place-items: start center;
    }

    .picker-dialog {
      width: min(620px, 100%);
      max-height: min(680px, calc(100vh - 24px));
      display: grid;
      grid-template-rows: auto auto minmax(0, 1fr);
      border: 1px solid #bfc7d2;
      border-radius: 3px;
      background: #ffffff;
      box-shadow: 0 18px 50px rgba(15, 23, 42, 0.24);
      overflow: hidden;
    }

    .picker-head {
      display: flex;
      align-items: center;
      justify-content: space-between;
      gap: 8px;
      padding: 10px;
      border-bottom: 1px solid var(--line);
      background: #f5f5f5;
    }

    .picker-title {
      margin: 0;
      font-size: 15px;
      font-weight: 900;
    }

    .picker-close {
      width: 34px;
      min-height: 30px;
      padding: 0;
      border: 1px solid #cfcfcf;
      background: #ffffff;
      color: #1f2933;
    }

    .picker-search-wrap {
      padding: 10px;
      border-bottom: 1px solid var(--line);
    }

    .picker-search {
      width: 100%;
      min-height: 42px;
      font-size: 16px;
    }

    .picker-list {
      overflow: auto;
      padding: 6px;
      background: #ffffff;
    }

    .picker-option {
      width: 100%;
      min-height: 42px;
      display: grid;
      grid-template-columns: minmax(0, 1fr);
      gap: 2px;
      border: 0;
      border-radius: 2px;
      padding: 7px 8px;
      background: #ffffff;
      color: #1f2933;
      text-align: left;
      cursor: pointer;
    }

    .picker-option:hover,
    .picker-option:focus {
      outline: none;
      background: #eef4fb;
    }

    .picker-option-name {
      font-weight: 800;
      overflow: hidden;
      text-overflow: ellipsis;
      white-space: nowrap;
    }

    .picker-option-meta {
      color: var(--muted);
      font-size: 12px;
      overflow: hidden;
      text-overflow: ellipsis;
      white-space: nowrap;
    }

    label {
      font-weight: 700;
      color: #344055;
      font-size: 11px;
    }

    input,
    select {
      width: 100%;
      min-height: 32px;
      border: 1px solid #cfcfcf;
      border-radius: 2px;
      padding: 5px 7px;
      font: inherit;
      background: #ffffff;
      font-size: 13px;
    }

    select {
      max-width: 100%;
    }

    input:focus,
    select:focus {
      outline: 2px solid #b9d8ff;
      border-color: var(--accent);
    }

    button {
      width: 100%;
      min-height: 46px;
      border: 0;
      border-radius: 2px;
      background: var(--accent);
      color: #ffffff;
      font: inherit;
      font-weight: 800;
      cursor: pointer;
    }

    button:active {
      transform: translateY(1px);
    }

    .result-main {
      display: grid;
      gap: 6px;
    }

    .result-box {
      border: 1px solid var(--line);
      border-radius: 2px;
      padding: 7px 8px;
      background: #ffffff;
    }

    .result-label {
      margin: 0 0 4px;
      color: var(--muted);
      font-size: 13px;
      font-weight: 700;
    }

    .result-value {
      margin: 0;
      font-size: 18px;
      font-weight: 900;
    }

    #damageRange {
      color: var(--accent);
    }

    #koSummary {
      color: var(--good);
    }

    .rolls {
      margin: 0;
      line-height: 1.7;
      overflow-wrap: anywhere;
    }

    .note {
      margin: 6px 0 0;
      color: var(--muted);
      font-size: 11px;
      line-height: 1.6;
    }

    .field .note {
      margin-top: 0;
    }

    .actions {
      margin-top: 12px;
    }

    .result-summary {
      display: grid;
      grid-template-columns: 1fr;
      gap: 6px;
    }

    .mobile-result-meter {
      display: none;
    }

    .mobile-damage-summary {
      display: none;
    }

    .calc-status {
      margin: 0 0 6px;
      color: var(--muted);
      font-size: 12px;
      font-weight: 800;
    }

    .calc-status[data-status="ok"] {
      color: var(--good);
    }

    .calc-status[data-status="error"] {
      color: var(--danger);
    }

    .result-summary .result-box {
      display: grid;
      grid-template-columns: 88px minmax(0, 1fr);
      gap: 8px;
      align-items: baseline;
    }

    .history-dock {
      margin-top: 10px;
      border: 1px solid var(--line);
      border-radius: 14px;
      background: #ffffff;
      padding: 12px;
      box-shadow: 0 10px 24px rgba(15, 23, 42, 0.06);
    }

    .history-header {
      display: flex;
      align-items: center;
      justify-content: space-between;
      gap: 12px;
      margin-bottom: 12px;
    }

    .history-header h3 {
      margin: 0;
      font-size: 15px;
      color: #0f172a;
    }

    .history-actions,
    .history-item-actions {
      display: flex;
      flex-wrap: wrap;
      gap: 8px;
    }

    .history-note {
      margin: 0 0 12px;
      color: var(--muted);
      font-size: 12px;
    }

    .history-list {
      display: grid;
      gap: 8px;
    }

    .history-item {
      border: 1px solid var(--line);
      border-radius: 12px;
      padding: 10px;
      background: #fff;
    }

    .history-item.is-active {
      border-color: var(--accent);
      box-shadow: 0 0 0 1px rgba(109, 93, 252, 0.15);
    }

    .history-item-head {
      display: flex;
      justify-content: space-between;
      align-items: flex-start;
      gap: 8px;
      margin-bottom: 6px;
    }

    .history-item-title,
    .history-item-meta {
      margin: 0;
    }

    .history-item-title {
      font-weight: 800;
    }

    .history-item-date {
      font-size: 11px;
      color: var(--muted);
      white-space: nowrap;
    }

    .history-item-meta {
      margin-bottom: 8px;
      color: var(--muted);
      font-size: 11px;
      overflow-wrap: anywhere;
    }

    .history-button {
      border: 1px solid var(--line);
      background: #fff;
      color: #0f172a;
      border-radius: 999px;
      padding: 6px 10px;
      font-size: 11px;
      font-weight: 700;
    }

    .history-button.primary {
      border-color: var(--accent);
      color: var(--accent);
    }

    .history-button.danger {
      border-color: #fecaca;
      color: #b91c1c;
    }

    .result-summary .result-label {
      margin: 0;
    }

    .result-summary .result-box:first-child {
      background: #ffffff;
      border-color: #cfcfcf;
    }

    .result-section {
      position: static;
      z-index: 8;
    }

    .actions {
      display: none;
    }

    .mobile-tabs {
      display: none;
    }

    @media (max-width: 760px) {
      body {
        padding-bottom: 150px;
      }

      main {
        padding: 58px 10px 10px;
      }

      .mobile-tabs {
        position: fixed;
        top: 0;
        left: 0;
        right: 0;
        z-index: 60;
        display: grid;
        grid-template-columns: 1fr 44px 1fr;
        min-height: 54px;
        background: #ffffff;
        border-bottom: 1px solid var(--line);
      }

      .mobile-tab {
        border: 0;
        border-bottom: 3px solid transparent;
        border-radius: 0;
        background: #ffffff;
        color: #7a7f86;
        font-size: 16px;
        font-weight: 900;
        cursor: pointer;
      }

      .mobile-tab[aria-selected="true"] {
        color: #111827;
        border-bottom-color: var(--danger);
      }

      .mobile-tab[data-mobile-tab-target="attack"][aria-selected="true"] {
        color: var(--attack-deep);
        border-bottom-color: var(--attack);
        background: var(--attack-soft);
      }

      .mobile-tab[data-mobile-tab-target="defense"][aria-selected="true"] {
        color: var(--defense-deep);
        border-bottom-color: var(--defense);
        background: var(--defense-soft);
      }

      .mobile-tab-icon {
        border: 0;
        border-radius: 0;
        background: #ffffff;
        display: grid;
        place-items: center;
        color: #737373;
        font-size: 24px;
        font-weight: 900;
        cursor: pointer;
      }

      .mobile-tab-icon:active {
        color: #111827;
        background: #f3f4f6;
      }

      .layout {
        display: flex;
        flex-direction: column;
      }

      header {
        margin-bottom: 12px;
      }

      h1 {
        font-size: 21px;
      }

      .lead {
        font-size: 14px;
      }

      section {
        padding: 12px;
      }

      .field-grid,
      .result-summary,
      .input-groups {
        grid-template-columns: 1fr;
      }

      .input-groups {
        grid-template-areas:
          "attacker"
          "defender";
        gap: 10px;
      }

      .input-group[data-group="attacker"],
      .input-group[data-group="move"],
      .input-group[data-group="field"],
      .input-group[data-group="defender"] {
        grid-column: auto;
        grid-row: auto;
      }

      .input-group[data-group="attacker"],
      .input-group[data-group="defender"] {
        order: 0;
      }

      .input-group[data-group="attacker"] {
        order: 1;
      }

      .input-group[data-group="defender"] {
        order: 2;
      }

      body[data-mobile-tab="attack"] .input-group[data-group="defender"] {
        display: none;
      }

      body[data-mobile-tab="defense"] .input-group[data-group="attacker"] {
        display: none;
      }

      .matchup-strip {
        grid-template-columns: 1fr;
      }

      .matchup-arrow {
        display: none;
      }

      input,
      select {
        min-height: 46px;
        font-size: 16px;
      }

      .result-section {
        position: fixed;
        left: max(8px, env(safe-area-inset-left));
        right: max(8px, env(safe-area-inset-right));
        bottom: max(8px, env(safe-area-inset-bottom));
        z-index: 80;
        order: 4;
        width: min(520px, calc(100% - 16px));
        margin: 0 auto;
        padding: 12px 18px 10px;
        border: 0;
        border-radius: 0;
        background: #ffffff;
        box-shadow: 0 -8px 22px rgb(15 23 42 / 12%);
        display: block;
      }

      .result-section h2,
      .result-section details {
        display: none;
      }

      .calc-status {
        display: none;
      }

      .result-summary {
        grid-template-columns: 1fr;
        gap: 4px;
      }

      .mobile-result-meter {
        display: block;
        height: 16px;
        overflow: hidden;
        border-radius: 999px;
        background: #eceff1;
      }

      .mobile-result-meter span {
        display: block;
        width: 100%;
        height: 100%;
        border-radius: 999px;
        --hp-low: 0%;
        --hp-high: 0%;
        --hp-main: #f97316;
        --hp-range: rgba(249, 115, 22, 0.25);
        background: linear-gradient(
          90deg,
          var(--hp-main) 0 var(--hp-low),
          var(--hp-range) var(--hp-low) var(--hp-high),
          transparent var(--hp-high) 100%
        );
        transition: background 0.16s ease;
      }

      .mobile-result-meter span[data-hp-color="low"] {
        --hp-main: #f97316;
        --hp-range: rgba(249, 115, 22, 0.25);
      }

      .mobile-result-meter span[data-hp-color="mid"] {
        --hp-main: #f97316;
        --hp-range: rgba(249, 115, 22, 0.25);
      }

      .mobile-result-meter span[data-hp-color="high"] {
        --hp-main: #f97316;
        --hp-range: rgba(249, 115, 22, 0.25);
      }

      .mobile-damage-summary {
        display: block;
        margin: 0;
        color: #111827;
        font-size: 17px;
        font-weight: 500;
        line-height: 1.25;
      }

      .result-summary .result-box {
        display: none;
        min-height: 0;
        padding: 0;
        border: 0;
        grid-template-columns: 1fr;
        background: transparent;
      }

      .result-summary .mobile-result-meter,
      .result-summary .mobile-damage-summary {
        display: block;
      }

      .result-label {
        display: none;
      }

      .result-main {
        max-height: none;
        overflow: auto;
        padding-right: 2px;
      }

      .result-value {
        font-size: 17px;
        font-weight: 500;
        color: #111827;
      }

      .stat-tuner-head {
        grid-template-columns: 1fr 1fr 72px;
      }

      .stat-readout-value {
        font-size: 24px;
      }

      .sp-range-row,
      .rank-range-row {
        grid-template-columns: minmax(0, 1fr) 38px 38px;
      }
    }
