    html, body {
      margin: 0; 
      padding: 0;
      background: #2d3d3e;
      color: #f0f0f0;
      font-family: "Roboto", sans-serif; 
      height: 100%;
      box-sizing: border-box;
    }
    *, *::before, *::after {
      box-sizing: inherit;
    }
    h1 {
      margin: 0; 
      padding: 8px;
      background: #2a363b;
      border-bottom: 1px solid #444;
      text-align: center;
      font-weight: bold;
      font-size: 1.2em;
    }
    a {
      color: #fff;
      text-decoration: none;
    }
    a:hover {
      opacity: 0.8;
    }
    .container {
      display: flex;
      flex-direction: column;
      height: 100vh;
    }
    /* フォーム */
    #calculationForm {
      display: flex;
      flex-direction: column;
      align-items: center;
      gap: 8px;
      padding: 8px;
      background: #2a363b;
      border-bottom: 1px solid #444;
    }
    .input-row {
      display: flex;
      flex-wrap: wrap;
      justify-content: center;
      gap: 6px;
      margin-top: 6px;
      width: 100%;
    }
    .input-row label {
      font-size: 0.9em;
      color: #ccc;
    }
    #ownerAddress {
      width: 220px;
      padding: 4px 6px;
      border: 1px solid #555;
      border-radius: 4px;
      background: #3f4d4e;
      color: #fff;
      font-size: 0.9em;
    }
    .btn {
      display: inline-block;
      background: #00b894;
      color: #fff;
      padding: 6px 12px;
      border: none;
      border-radius: 4px;
      cursor: pointer;
      font-size: 0.9em;
      transition: background 0.3s;
      text-decoration: none;
    }
    .btn:hover {
      background: #019374;
    }
    .btn.selected {
      background: #00937e;
      border: 2px solid #00d2a7;
    }

    /* メイン */
    #result {
      flex: 1;
      display: flex;
      flex-direction: column;
      overflow-y: auto;
    }
    #progressSection {
      padding: 8px;
      background: #2a363b;
      border-bottom: 1px solid #444;
      font-size: 0.9em;
      min-height: 48px;
      text-align: center;
    }
    #cardsArea {
      display: flex;
      flex-wrap: nowrap;
      gap: 16px;
      overflow-y: auto;
      flex: 1;
      padding: 8px;
      background: #2d3d3e;
    }

    /* カード */
    .nft-card {
      /* PC/タブレット: 幅80%, max 600px */
      width: 80vw;
      max-width: 600px;
      margin: 0 auto; 
      border: 1px solid #444;
      border-radius: 6px;
      padding: 6px;
      background: #354446;
      box-shadow: 0 2px 4px rgba(0,0,0,0.3);
      margin-bottom: 16px;
    }
    .nft-card h3 {
      margin: 0 0 4px;
      padding: 0;
      font-size: 1em;
      color: #fff;
      word-break: break-all;
    }
    .nft-card img {
      max-width: 100%;
      border: 1px solid #555;
      border-radius: 4px;
      display: block;
      margin-bottom: 4px;
    }
    .nft-card p {
      margin: 0;
      padding: 0;
      font-size: 0.8em;
      color: #ccc;
      line-height: 1.0em;
    }
    .nft-card ul {
      margin: 2px 0 0;
      padding-left: 16px;
      list-style: none;
    }
    .nft-card ul li {
      font-size: 0.75em;
      margin: 1px 0;
      color: #ddd;
      line-height: 1.0em;
    }
    .simulator-btn {
      display: block;
      margin: 6px auto;
      background: #00b894;
      color: #fff;
      padding: 4px 8px;
      border: none;
      border-radius: 4px;
      text-align: center;
      font-size: 0.8em;
      width: fit-content;
      text-decoration: none;
      cursor: pointer;
    }
    .simulator-btn:hover {
      background: #019374;
    }

    /* Rem. Skill Pts */
    .skill-points-line {
      margin: 2px 0;
      font-size: 0.75em;
      color: #ddd;
      text-align: center;
      line-height: 1.0em;
    }

    /* QELBバー */
    .status-container {
      margin-top: 4px;
      font-size: 0.75em;
    }
    .status-row {
      display: flex;
      align-items: center;
      margin-bottom: 2px;
    }
    .status-label {
      width: 26px;
      text-align: right;
      margin-right: 2px;
      color: #ccc;
      flex-shrink: 0;
      font-size: 0.7em;
    }
    .bar-wrapper {
      flex: 1;
      display: flex;
      align-items: center;
      gap: 2px;
    }
    .init-text {
      width: 20px;
      text-align: right;
      font-size: 0.7em;
      color: #ccc;
    }
    .bar-container {
      flex: 1;
      height: 8px;
      background: #444;
      border-radius: 3px;
      display: flex;
      overflow: hidden;
    }
    .bar-initial {
      height: 100%;
      background: #666;
    }
    .bar-skill {
      height: 100%;
      background: #139e78;
    }
    .bar-badge {
      height: 100%;
      background: #3fa7ff;
    }
    .val-text {
      width: 24px;
      text-align: right;
      font-size: 0.7em;
      color: #ccc;
    }

    .legend-bar {
      display: flex;
      gap: 6px;
      margin-top: 2px;
      margin-left: 36px;
      font-size: 0.6em;
    }
    .legend-item {
      display: flex;
      align-items: center;
      gap: 1px;
    }
    .legend-color {
      width: 8px;
      height: 8px;
      border-radius: 2px;
    }
    .legend-color.initial {
      background: #666;
    }
    .legend-color.skill {
      background: #139e78;
    }
    .legend-color.badge {
      background: #3fa7ff;
    }

    .fixed-footer {
      background: #2a363b;
      padding: 4px;
      text-align: center;
      font-size: 0.8em;
      color: #fff;
    }

    /* スマホの場合(幅600px以下)はカード幅をさらに倍に(160vw) */
    @media (max-width: 600px) {
      .nft-card {
        width: 160vw; /* PC時の width:80vw の2倍 */
        max-width: 600px; 
      }
    }
