
    /* Desktop full game */
    .dg-full-root {
      display: flex;
      flex-direction: column;
      height: 100vh;
      background: var(--bg);
      color: var(--text);
    }

    .dg-full-state {
      font-size: var(--fs-sm);
      padding: 2px 10px;
      border-radius: 999px;
      font-weight: 700;
      border: 1px solid #d6ddd8;
      background: var(--panel);
    }

    .dg-full-state.mine {
      border-color: #8bb39e;
      background: #e4f2eb;
      color: #2f7b56;
    }

    .dg-full-state.opponent {
      border-color: #c7ced6;
      background: #f0f2f4;
      color: #5a6a75;
    }

    .dg-card-chip {
      display: grid;
      grid-template-rows: auto 1fr auto;
      align-items: center;
      justify-items: center;
      gap: 2px;
      position: relative;
    }

    .dg-card-chip.shield.selected {
      outline: 2px solid #5d6b7d;
      outline-offset: 2px;
    }

    .dg-btn.guide {
      animation: dmPulse 1.4s infinite;
    }

    .dg-btn.shield-break {
      background: #8b6e96;
    }

    .dl-user-badge {
      margin-bottom: 8px;
      padding: 6px 8px;
      font-size: var(--fs-sm);
      color: #243447;
      border: 1px solid #e8edf4;
      background: #ffffff;
      border-radius: 6px;
    }

    .dl-search-row {
      display: flex;
      align-items: center;
      justify-content: space-between;
      gap: 8px;
    }

    .dl-search-top {
      display: flex;
      gap: 8px;
      align-items: flex-start;
    }

    .dl-search-thumb {
      width: 56px;
      height: 56px;
      border-radius: 6px;
      object-fit: cover;
      border: 1px solid #d8dfe4;
      background: #ecf1f4;
      flex-shrink: 0;
    }

    .dl-search-thumb.placeholder {
      display: flex;
      align-items: center;
      justify-content: center;
      font-size: 0.56rem;
      color: #6f7d88;
      font-weight: 700;
    }

    .dl-search-main {
      min-width: 0;
      flex: 1;
    }

    .dl-search-cost {
      min-width: 20px;
      text-align: center;
      font-weight: 700;
      color: #5d6f80;
      background: #e2e9ef;
      border-radius: 999px;
      font-size: var(--fs-xs);
      padding: 1px 6px;
    }

    .dl-search-meta {
      margin-top: 3px;
      display: flex;
      flex-wrap: wrap;
      gap: 4px;
      font-size: 0.68rem;
      color: #33415a;
    }

    .dl-badge {
      display: inline-flex;
      align-items: center;
      justify-content: center;
      min-width: 24px;
      padding: 1px 6px;
      border-radius: 999px;
      font-size: 0.66rem;
      font-weight: 700;
      border: 1px solid transparent;
      background: #e6ebee;
      color: #465a6b;
    }

    .dl-badge.cost {
      background: #e2e9ef;
      color: #51677a;
    }

    .dl-badge.power {
      background: #f4f6fa;
      color: #33415a;
    }

    .dl-badge.civ.fire { background: #fce0d3; color: #a5461f; border-color: #f0b39c; }
    .dl-badge.civ.water { background: #dceafd; color: #355f8f; border-color: #9fbce6; }
    .dl-badge.civ.nature { background: #dceddc; color: #356f35; border-color: #9ec79d; }
    .dl-badge.civ.light { background: #f7f0cf; color: #7d6a1f; border-color: #e3cf94; }
    .dl-badge.civ.dark,
    .dl-badge.civ.darkness { background: #e8deef; color: #55426b; border-color: #bda9d0; }
    .dl-badge.civ.multi { background: #e6eaed; color: #54626d; border-color: #bac3c9; }

    .dl-search-grid {
      display: grid;
      grid-template-columns: repeat(3, minmax(0, 1fr));
      gap: 8px;
    }

    .dl-search-tile {
      padding: 0;
      border: 1px solid rgba(52,74,106, 0.22);
      border-radius: 8px;
      overflow: hidden;
      background: rgba(255,255,255, 0.88);
      cursor: pointer;
      box-shadow: 0 5px 14px rgba(23,32,46, 0.18);
      transition: transform 0.14s ease, box-shadow 0.14s ease;
      display: flex;
      flex-direction: column;
      text-align: left;
    }

    /* 検索結果は画像のみ表示（カード名はtitle属性のツールチップへ） */
    .dl-search-tile-image-only {
      min-height: 0;
    }

    .dl-search-tile:hover {
      transform: translateY(-1px);
      box-shadow: 0 8px 18px rgba(23,32,46, 0.22);
    }

    .dl-search-thumb-wrap {
      width: 100%;
      aspect-ratio: 0.72;
      background: #e4ecf2;
    }

    .dl-search-card-image {
      width: 100%;
      height: 100%;
      object-fit: cover;
      background: #e4ecf2;
      border: 1px solid rgba(108, 136, 158, 0.35);
      display: block;
    }

    .dl-search-tile-body {
      padding: 6px 7px 7px;
      display: grid;
      gap: 3px;
      min-height: 48px;
    }

    .dl-search-tile-name {
      color: #243447;
      font-size: var(--fs-xs);
      font-weight: 800;
      line-height: 1.22;
      display: -webkit-box;
      -webkit-line-clamp: 2;
      -webkit-box-orient: vertical;
      overflow: hidden;
    }

    /* NO IMG 時のみタイル直下に出る名前ラベル */
    .dl-search-tile > .dl-search-tile-name {
      padding: 5px 7px 7px;
    }

    .dl-search-tile-meta {
      color: #33415a;
      font-size: 0.62rem;
      line-height: 1.2;
      white-space: nowrap;
      overflow: hidden;
      text-overflow: ellipsis;
    }

    .dl-search-card-image.placeholder {
      display: flex;
      align-items: center;
      justify-content: center;
      font-size: 0.58rem;
      color: #687a87;
      font-weight: 700;
      letter-spacing: 0.04em;
    }

    .dl-search-empty {
      min-height: 124px;
      display: grid;
      place-items: center;
      border-radius: 8px;
      border: 1px dashed rgba(52,74,106, 0.44);
      color: #33415a;
      background: rgba(255, 255, 255, 0.56);
      font-size: var(--fs-sm);
      text-align: center;
      padding: 8px;
    }

    .dl-search-pagination {
      margin-top: 8px;
      display: flex;
      align-items: center;
      justify-content: space-between;
      gap: 8px;
    }

    .dl-page-btn {
      min-width: 56px;
      padding: 5px 10px;
      border-radius: 999px;
      border: 1px solid #d8dfe9;
      background: linear-gradient(180deg, #ffffff 0%, #f4f6fa 100%);
      color: #243447;
      font-size: var(--fs-xs);
      font-weight: 700;
      cursor: pointer;
    }

    .dl-page-btn:disabled {
      opacity: 0.52;
      cursor: default;
    }

    .dl-search-page-indicator {
      flex: 1;
      text-align: center;
      font-size: var(--fs-xs);
      font-weight: 700;
      color: #243447;
    }

    .dl-more-btn {
      width: 100%;
      margin-top: 6px;
      padding: 6px;
      border-radius: 4px;
      border: 1px solid #d7dfda;
      background: #f2f5f3;
      color: var(--text);
      cursor: pointer;
      font-size: var(--fs-sm);
      font-weight: 600;
    }

    .dl-more-btn:disabled {
      opacity: 0.6;
      cursor: default;
    }
