
    :root {
      --bg: #0f1420;
      --card-bg: #171e2e;
      --text: #e6eaf2;
      --muted: #8b95a7;
      --accent: #5b8cff;
      --border: #263150;
      --shadow: 0 1px 2px rgba(0, 0, 0, 0.4);
      --feature-bg: rgba(91, 140, 255, 0.15);
      color-scheme: dark;
    }
    html[data-theme="light"] {
      --bg: #f4f6fb;
      --card-bg: #ffffff;
      --text: #1f2430;
      --muted: #6b7280;
      --accent: #2f6fed;
      --border: #e5e8ef;
      --shadow: 0 1px 2px rgba(16, 24, 40, 0.04);
      --feature-bg: rgba(47, 111, 237, 0.08);
      color-scheme: light;
    }
    * { box-sizing: border-box; }
    body {
      margin: 0;
      background: var(--bg);
      color: var(--text);
      font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", "Hiragino Kaku Gothic ProN", "Noto Sans JP", Meiryo, sans-serif;
      line-height: 1.5;
      transition: background 0.2s ease, color 0.2s ease;
    }
    .site-header {
      position: sticky;
      top: 0;
      z-index: 10;
      background: var(--card-bg);
      border-bottom: 1px solid var(--border);
      box-shadow: var(--shadow);
    }
    .site-header__inner {
      max-width: 1100px;
      margin: 0 auto;
      padding: 0 16px;
      height: 56px;
      display: flex;
      align-items: center;
      gap: 12px;
    }
    .site-header__brand {
      display: flex;
      align-items: center;
      gap: 8px;
      text-decoration: none;
      color: var(--text);
    }
    .site-header__logo {
      width: 24px;
      height: 24px;
      border-radius: 6px;
      background: var(--accent);
      color: #fff;
      font-size: 0.8rem;
      font-weight: 700;
      display: flex;
      align-items: center;
      justify-content: center;
    }
    .site-header__title { font-size: 1.05rem; font-weight: 700; margin: 0; }
    .site-header__actions {
      margin-left: auto;
      display: flex;
      align-items: center;
      gap: 12px;
    }
    .site-header__nav {
      display: flex;
      align-items: center;
      gap: 4px;
      margin-left: 8px;
    }
    .site-header__nav-link {
      padding: 6px 10px;
      font-size: 0.9rem;
      font-weight: 600;
      color: var(--muted);
      text-decoration: none;
      border-radius: 8px;
      transition: color 0.2s ease, background 0.2s ease;
    }
    .site-header__nav-link:hover { color: var(--accent); background: var(--bg); }
    .site-header__nav-link:focus-visible { outline: 3px solid var(--accent); outline-offset: 2px; }
    .site-header__lead { color: var(--muted); font-size: 0.85rem; }
    @media (max-width: 600px) {
      .site-header__lead { display: none; }
    }
    .compare-link {
      position: relative;
      width: 36px;
      height: 36px;
      flex: none;
      display: flex;
      align-items: center;
      justify-content: center;
      color: var(--text);
      background: var(--bg);
      border: 1px solid var(--border);
      border-radius: 10px;
      text-decoration: none;
      transition: border-color 0.2s ease, color 0.2s ease, background 0.2s ease;
    }
    .compare-link:hover { border-color: var(--accent); color: var(--accent); }
    .compare-link:focus-visible { outline: 3px solid var(--accent); outline-offset: 2px; }
    .compare-link__icon { width: 20px; height: 20px; }
    .compare-badge {
      position: absolute;
      top: -7px;
      right: -7px;
      min-width: 18px;
      height: 18px;
      padding: 0 4px;
      border-radius: 999px;
      background: #e5484d;
      color: #fff;
      border: 2px solid var(--card-bg);
      font-size: 0.65rem;
      font-weight: 700;
      line-height: 1;
      display: flex;
      align-items: center;
      justify-content: center;
      box-sizing: content-box;
    }
    .compare-badge[hidden] { display: none; }
    .theme-toggle {
      position: relative;
      width: 52px;
      height: 28px;
      padding: 0;
      border: 1px solid var(--border);
      border-radius: 999px;
      background: var(--bg);
      cursor: pointer;
      flex: none;
      transition: background 0.2s ease, border-color 0.2s ease;
    }
    .theme-toggle__thumb {
      position: absolute;
      top: 2px;
      left: 2px;
      width: 22px;
      height: 22px;
      border: 1px solid var(--border);
      border-radius: 50%;
      background: var(--card-bg);
      display: flex;
      align-items: center;
      justify-content: center;
      transition: transform 0.2s ease, background 0.2s ease, border-color 0.2s ease;
    }
    html[data-theme="light"] .theme-toggle__thumb { transform: translateX(24px); }
    .theme-toggle__icon {
      position: absolute;
      width: 14px;
      height: 14px;
      transition: opacity 0.2s ease, transform 0.2s ease;
    }
    .theme-toggle__icon--moon {
      color: var(--accent);
      opacity: 1;
      transform: none;
    }
    .theme-toggle__icon--sun {
      color: #f5a623;
      opacity: 0;
      transform: rotate(-90deg) scale(0.5);
    }
    html[data-theme="light"] .theme-toggle__icon--moon {
      opacity: 0;
      transform: rotate(90deg) scale(0.5);
    }
    html[data-theme="light"] .theme-toggle__icon--sun {
      opacity: 1;
      transform: none;
    }
    .page {
      max-width: 1100px;
      margin: 0 auto;
      padding: 24px 16px 64px;
    }
    .page__lead { color: var(--muted); margin: 0 0 24px; font-size: 0.95rem; }
    a { color: var(--accent); }
    .feature {
      font-size: 0.75rem;
      color: var(--accent);
      background: var(--feature-bg);
      border-radius: 999px;
      padding: 3px 10px;
    }
    .features { display: flex; flex-wrap: wrap; gap: 6px; }


    .hero {
      position: relative;
      overflow: hidden;
      background: var(--card-bg);
      border: 1px solid var(--border);
      border-radius: 20px;
      padding: 48px 32px;
      box-shadow: var(--shadow);
      margin-bottom: 36px;
    }
    .hero::after {
      content: "";
      position: absolute;
      top: -120px;
      right: -120px;
      width: 320px;
      height: 320px;
      border-radius: 50%;
      background: var(--feature-bg);
      pointer-events: none;
    }
    .hero__inner { position: relative; max-width: 620px; }
    .hero__eyebrow {
      display: inline-block;
      font-size: 0.78rem;
      font-weight: 700;
      letter-spacing: 0.06em;
      color: var(--accent);
      background: var(--feature-bg);
      border-radius: 999px;
      padding: 4px 12px;
      margin-bottom: 16px;
    }
    .hero__title {
      margin: 0 0 14px;
      font-size: 2.1rem;
      line-height: 1.3;
    }
    .hero__title em {
      font-style: normal;
      color: var(--accent);
    }
    .hero__lead { margin: 0 0 24px; color: var(--muted); font-size: 1rem; }
    .hero__actions { display: flex; flex-wrap: wrap; gap: 12px; }
    .hero__stats {
      margin: 32px 0 0;
      padding: 20px 0 0;
      border-top: 1px solid var(--border);
      display: grid;
      grid-template-columns: repeat(auto-fit, minmax(120px, 1fr));
      gap: 16px;
    }
    .hero__stat { display: flex; flex-direction: column; gap: 2px; }
    .hero__stat-value { font-size: 1.5rem; font-weight: 800; color: var(--accent); }
    .hero__stat-label { font-size: 0.8rem; color: var(--muted); }
    .button {
      display: inline-flex;
      align-items: center;
      gap: 8px;
      padding: 12px 24px;
      font-size: 0.98rem;
      font-weight: 700;
      border-radius: 999px;
      text-decoration: none;
      transition: transform 0.15s ease, opacity 0.15s ease, border-color 0.15s ease, color 0.15s ease;
    }
    .button--primary {
      color: #fff;
      background: var(--accent);
      box-shadow: 0 4px 14px rgba(0, 0, 0, 0.2);
    }
    .button--primary:hover { transform: translateY(-2px); opacity: 0.92; }
    .button--ghost {
      color: var(--text);
      background: var(--bg);
      border: 1px solid var(--border);
    }
    .button--ghost:hover { border-color: var(--accent); color: var(--accent); }
    .section { margin-bottom: 40px; }
    .section__head {
      display: flex;
      align-items: flex-end;
      justify-content: space-between;
      gap: 12px;
      flex-wrap: wrap;
      margin-bottom: 20px;
    }
    .section__title { margin: 0; font-size: 1.4rem; display: flex; align-items: center; gap: 10px; }
    .section__title::before {
      content: "";
      width: 5px;
      height: 1.35rem;
      border-radius: 999px;
      background: var(--accent);
      display: inline-block;
    }
    .section__lead { margin: 6px 0 0; color: var(--muted); font-size: 0.9rem; }
    .section__link { font-size: 0.9rem; font-weight: 700; text-decoration: none; white-space: nowrap; }
    .section__link:hover { text-decoration: underline; }
    .ranking {
      display: grid;
      grid-template-columns: repeat(auto-fit, minmax(260px, 1fr));
      gap: 20px;
    }
    .rank-card {
      position: relative;
      background: var(--card-bg);
      border: 1px solid var(--border);
      border-radius: 16px;
      box-shadow: var(--shadow);
      transition: transform 0.15s ease, border-color 0.15s ease, box-shadow 0.15s ease;
    }
    .rank-card:hover {
      border-color: var(--accent);
      transform: translateY(-3px);
      box-shadow: 0 8px 22px rgba(0, 0, 0, 0.2);
    }
    .rank-card--1 { --rank-color: #f5a623; }
    .rank-card--2 { --rank-color: #9aa5b1; }
    .rank-card--3 { --rank-color: #c47f4a; }
    .rank-card__badge {
      position: absolute;
      top: -14px;
      left: -10px;
      z-index: 2;
      width: 42px;
      height: 42px;
      display: flex;
      align-items: center;
      justify-content: center;
      font-size: 1.2rem;
      font-weight: 800;
      color: #fff;
      background: var(--rank-color);
      border: 3px solid var(--bg);
      border-radius: 14px;
      box-shadow: 0 4px 12px rgba(0, 0, 0, 0.25);
    }
    .rank-card__link {
      display: flex;
      flex-direction: column;
      height: 100%;
      padding: 22px 20px 20px;
      color: inherit;
      text-decoration: none;
      border-radius: 16px;
    }
    .rank-card__link:focus-visible { outline: 3px solid var(--accent); outline-offset: 2px; }
    .rank-card__head {
      display: flex;
      align-items: center;
      justify-content: space-between;
      gap: 8px;
      margin-bottom: 2px;
    }
    .rank-card__carrier { font-weight: 700; font-size: 0.95rem; }
    .rank-card__tags {
      display: inline-flex;
      align-items: center;
      gap: 6px;
      flex-wrap: wrap;
      min-width: 0;
    }
    .category-badge {
      font-size: 0.68rem;
      font-weight: 700;
      color: var(--accent);
      background: var(--feature-bg);
      border: 1px solid var(--accent);
      border-radius: 999px;
      padding: 1px 8px;
      white-space: nowrap;
    }
    .rank-card__views {
      display: inline-flex;
      align-items: center;
      gap: 4px;
      font-size: 0.72rem;
      color: var(--muted);
      white-space: nowrap;
    }
    .rank-card__views-icon { width: 14px; height: 14px; }
    .rank-card__network { font-size: 0.75rem; color: var(--muted); }
    .rank-card__name { margin: 8px 0 12px; font-size: 1.1rem; line-height: 1.35; }
    .rank-card__price { margin: 0 0 14px; display: flex; align-items: baseline; flex-wrap: wrap; gap: 4px; }
    .price__value { font-size: 1.6rem; font-weight: 700; color: var(--accent); }
    .price__unit { font-size: 0.78rem; color: var(--muted); }
    .rank-card__specs { margin: 0 0 12px; font-size: 0.88rem; }
    .rank-card__spec {
      display: flex;
      justify-content: space-between;
      gap: 8px;
      padding: 6px 0;
      border-bottom: 1px solid var(--border);
    }
    .rank-card__spec:last-child { border-bottom: none; }
    .rank-card__spec dt { color: var(--muted); margin: 0; }
    .rank-card__spec dd { margin: 0; font-weight: 600; }
    .rank-card__spec dd.data { color: var(--accent); }
    .rank-card__link .features { margin-bottom: 14px; }
    .rank-card__more {
      margin-top: auto;
      font-size: 0.85rem;
      font-weight: 700;
      color: var(--accent);
      display: inline-flex;
      align-items: center;
      gap: 4px;
    }
    .tips {
      display: grid;
      grid-template-columns: repeat(auto-fit, minmax(240px, 1fr));
      gap: 16px;
    }
    .tip {
      background: var(--card-bg);
      border: 1px solid var(--border);
      border-radius: 14px;
      padding: 20px;
      box-shadow: var(--shadow);
    }
    .tip__no {
      display: inline-flex;
      align-items: center;
      justify-content: center;
      width: 28px;
      height: 28px;
      margin-bottom: 12px;
      font-size: 0.85rem;
      font-weight: 800;
      color: #fff;
      background: var(--accent);
      border-radius: 9px;
    }
    .tip__title { margin: 0 0 8px; font-size: 1.02rem; }
    .tip__body { margin: 0; color: var(--muted); font-size: 0.88rem; line-height: 1.6; }
    .cta-banner {
      background: var(--card-bg);
      border: 1px solid var(--border);
      border-radius: 18px;
      padding: 32px;
      text-align: center;
      box-shadow: var(--shadow);
    }
    .cta-banner h2 { margin: 0 0 8px; font-size: 1.35rem; }
    .cta-banner p { margin: 0 0 20px; color: var(--muted); }
    .cta-banner__actions { display: flex; justify-content: center; flex-wrap: wrap; gap: 12px; }
    @media (max-width: 520px) {
      .hero { padding: 32px 20px; }
      .hero__title { font-size: 1.6rem; }
    }

    .grid {
      display: grid;
      grid-template-columns: repeat(auto-fill, minmax(260px, 1fr));
      gap: 16px;
    }
    .card {
      position: relative;
      background: var(--card-bg);
      border: 1px solid var(--border);
      border-radius: 12px;
      padding: 18px;
      display: flex;
      flex-direction: column;
      box-shadow: var(--shadow);
      transition: transform 0.15s ease, border-color 0.15s ease, box-shadow 0.15s ease;
    }
    .card:hover {
      border-color: var(--accent);
      transform: translateY(-2px);
      box-shadow: 0 6px 18px rgba(0, 0, 0, 0.18);
    }
    .card__link {
      display: flex;
      flex-direction: column;
      flex: 1;
      text-decoration: none;
      color: inherit;
      cursor: pointer;
      border-radius: 8px;
    }
    .card__link:focus-visible {
      outline: 3px solid var(--accent);
      outline-offset: 2px;
    }
    .card > .compare-toggle {
      position: absolute;
      top: 12px;
      right: 12px;
      z-index: 2;
      width: 32px;
      height: 32px;
      padding: 0;
      display: flex;
      align-items: center;
      justify-content: center;
      color: var(--muted);
      background: var(--bg);
      border: 1px solid var(--border);
      border-radius: 999px;
      cursor: pointer;
      transition: color 0.15s ease, border-color 0.15s ease, background 0.15s ease, transform 0.15s ease;
    }
    .card > .compare-toggle:hover {
      color: var(--accent);
      border-color: var(--accent);
      transform: scale(1.08);
    }
    .compare-toggle__icon { width: 18px; height: 18px; flex: none; }
    .card > .compare-toggle[aria-pressed="true"] {
      color: #fff;
      background: var(--accent);
      border-color: var(--accent);
    }
    .card__header {
      display: flex;
      align-items: center;
      justify-content: space-between;
      gap: 8px;
      margin-bottom: 8px;
      padding-right: 40px;
    }
    .carrier { font-weight: 700; font-size: 0.95rem; }
    .card__tags {
      display: inline-flex;
      align-items: center;
      gap: 6px;
      flex-wrap: wrap;
      min-width: 0;
    }
    .category-badge {
      font-size: 0.68rem;
      font-weight: 700;
      color: var(--accent);
      background: var(--feature-bg);
      border: 1px solid var(--accent);
      border-radius: 999px;
      padding: 1px 8px;
      white-space: nowrap;
    }
    .network {
      font-size: 0.75rem;
      color: var(--muted);
      background: var(--bg);
      border-radius: 999px;
      padding: 2px 8px;
      white-space: nowrap;
    }
    .plan-name { font-size: 1.05rem; margin: 0 0 12px; }
    .price {
      margin: 0 0 16px;
      display: flex;
      align-items: baseline;
      flex-wrap: wrap;
      gap: 4px;
    }
    .price__value { font-size: 1.7rem; font-weight: 700; color: var(--accent); }
    .price__unit { font-size: 0.8rem; color: var(--muted); }
    .tier-badge {
      align-self: center;
      font-size: 0.68rem;
      font-weight: 700;
      color: var(--accent);
      background: var(--feature-bg);
      border: 1px solid var(--accent);
      border-radius: 999px;
      padding: 2px 8px;
      white-space: nowrap;
    }
    .data__note { font-size: 0.75rem; font-weight: 500; color: var(--muted); }
    .specs { margin: 0 0 14px; font-size: 0.9rem; }
    .specs__row {
      display: flex;
      justify-content: space-between;
      padding: 6px 0;
      border-bottom: 1px solid var(--border);
    }
    .specs__row:last-child { border-bottom: none; }
    .specs dt { color: var(--muted); margin: 0; }
    .specs dd { margin: 0; font-weight: 600; }
    .specs dd.data { color: var(--accent); }
    .specs dd.carryover { color: var(--muted); }
    .specs dd.carryover--yes { color: var(--accent); }
    .card .features { margin-top: auto; }
    .card__more {
      margin-top: 14px;
      font-size: 0.85rem;
      font-weight: 700;
      color: var(--accent);
      display: inline-flex;
      align-items: center;
      gap: 4px;
    }
    .filters {
      background: var(--card-bg);
      border: 1px solid var(--border);
      border-radius: 12px;
      padding: 14px;
      margin: 0 0 20px;
      box-shadow: var(--shadow);
    }
    .filter-search { position: relative; }
    .filter-search__icon {
      position: absolute;
      top: 50%;
      left: 12px;
      width: 18px;
      height: 18px;
      transform: translateY(-50%);
      color: var(--muted);
      pointer-events: none;
    }
    .filter-search__input {
      width: 100%;
      padding: 11px 12px 11px 38px;
      font-size: 0.95rem;
      font-family: inherit;
      color: var(--text);
      background: var(--bg);
      border: 1px solid var(--border);
      border-radius: 10px;
      outline: none;
      transition: border-color 0.2s ease, box-shadow 0.2s ease;
    }
    .filter-search__input::placeholder { color: var(--muted); }
    .filter-search__input:focus {
      border-color: var(--accent);
      box-shadow: 0 0 0 3px var(--feature-bg);
    }
    .sort-bar {
      margin-top: 10px;
      display: flex;
      align-items: center;
      gap: 10px;
    }
    .sort-bar__label {
      display: inline-flex;
      align-items: center;
      gap: 6px;
      font-size: 0.85rem;
      font-weight: 600;
      color: var(--muted);
      white-space: nowrap;
    }
    .sort-bar__icon {
      width: 18px;
      height: 18px;
      color: var(--accent);
      flex: none;
    }
    .sort-bar__select {
      flex: 1;
      min-width: 0;
      padding: 9px 12px;
      font-size: 0.9rem;
      font-family: inherit;
      color: var(--text);
      background: var(--bg);
      border: 1px solid var(--border);
      border-radius: 10px;
      outline: none;
      cursor: pointer;
      transition: border-color 0.2s ease, box-shadow 0.2s ease;
    }
    .sort-bar__select:focus {
      border-color: var(--accent);
      box-shadow: 0 0 0 3px var(--feature-bg);
    }
    .filter-toggle {
      margin-top: 10px;
      width: 100%;
      display: flex;
      align-items: center;
      gap: 8px;
      padding: 10px 12px;
      font-size: 0.9rem;
      font-family: inherit;
      font-weight: 600;
      color: var(--text);
      background: var(--bg);
      border: 1px solid var(--border);
      border-radius: 10px;
      cursor: pointer;
      transition: border-color 0.2s ease, background 0.2s ease;
    }
    .filter-toggle:hover { border-color: var(--accent); }
    .filter-toggle__icon {
      width: 18px;
      height: 18px;
      color: var(--accent);
      flex: none;
    }
    .filter-toggle__chevron {
      width: 18px;
      height: 18px;
      margin-left: auto;
      color: var(--muted);
      transition: transform 0.2s ease;
    }
    .filter-toggle[aria-expanded="true"] .filter-toggle__chevron { transform: rotate(180deg); }
    .filter-toggle__badge {
      min-width: 20px;
      height: 20px;
      padding: 0 6px;
      border-radius: 999px;
      background: var(--accent);
      color: #fff;
      font-size: 0.7rem;
      font-weight: 700;
      display: inline-flex;
      align-items: center;
      justify-content: center;
    }
    .filter-toggle__badge[hidden] { display: none; }
    .filter-panel {
      margin-top: 12px;
      padding-top: 12px;
      border-top: 1px solid var(--border);
    }
    .filter-panel[hidden] { display: none; }
    .filter-panel__groups {
      display: grid;
      grid-template-columns: repeat(auto-fit, minmax(200px, 1fr));
      gap: 14px;
    }
    .filter-group {
      margin: 0;
      padding: 0;
      border: none;
      min-width: 0;
    }
    .filter-group legend {
      padding: 0;
      margin-bottom: 8px;
      font-size: 0.8rem;
      font-weight: 700;
      color: var(--muted);
    }
    .filter-options { display: flex; flex-wrap: wrap; gap: 8px; }
    .filter-range {
      display: flex;
      align-items: center;
      flex-wrap: wrap;
      gap: 6px;
    }
    .filter-range__input {
      width: 74px;
      padding: 8px 10px;
      font-size: 0.85rem;
      font-family: inherit;
      color: var(--text);
      background: var(--bg);
      border: 1px solid var(--border);
      border-radius: 8px;
      outline: none;
      transition: border-color 0.2s ease, box-shadow 0.2s ease;
    }
    .filter-range__input::placeholder { color: var(--muted); }
    .filter-range__input:focus {
      border-color: var(--accent);
      box-shadow: 0 0 0 3px var(--feature-bg);
    }
    .filter-range__sep { color: var(--muted); font-size: 0.85rem; }
    .filter-range__unit { color: var(--muted); font-size: 0.82rem; }
    .filter-option--check { margin-top: 10px; }
    .filter-option {
      display: inline-flex;
      align-items: center;
      gap: 6px;
      padding: 5px 10px;
      font-size: 0.82rem;
      color: var(--text);
      background: var(--bg);
      border: 1px solid var(--border);
      border-radius: 999px;
      cursor: pointer;
      user-select: none;
      transition: border-color 0.2s ease, background 0.2s ease, color 0.2s ease;
    }
    .filter-option:hover { border-color: var(--accent); }
    .filter-option:has(input:checked) {
      border-color: var(--accent);
      background: var(--feature-bg);
      color: var(--accent);
      font-weight: 600;
    }
    .filter-option input { margin: 0; accent-color: var(--accent); }
    .filter-panel__footer {
      display: flex;
      align-items: center;
      justify-content: space-between;
      gap: 12px;
      margin-top: 14px;
    }
    .result-count { font-size: 0.85rem; color: var(--muted); }
    .filter-reset {
      padding: 7px 14px;
      font-size: 0.82rem;
      font-family: inherit;
      font-weight: 600;
      color: var(--accent);
      background: transparent;
      border: 1px solid var(--accent);
      border-radius: 999px;
      cursor: pointer;
      transition: background 0.2s ease, color 0.2s ease;
    }
    .filter-reset:hover { background: var(--accent); color: #fff; }
    .card[hidden] { display: none; }
    .no-results {
      text-align: center;
      color: var(--muted);
      padding: 40px 0;
      font-size: 0.95rem;
    }
    .no-results[hidden] { display: none; }

    .back-link {
      display: inline-flex;
      align-items: center;
      gap: 6px;
      margin: 0 0 16px;
      font-size: 0.9rem;
      font-weight: 600;
      text-decoration: none;
    }
    .back-link:hover { text-decoration: underline; }
    .detail {
      display: flex;
      flex-direction: column;
      gap: 16px;
    }
    .detail__hero {
      background: var(--card-bg);
      border: 1px solid var(--border);
      border-radius: 16px;
      padding: 24px;
      box-shadow: var(--shadow);
    }
    .detail__meta {
      display: flex;
      align-items: center;
      gap: 8px;
      flex-wrap: wrap;
      margin-bottom: 10px;
    }
    .detail__meta .carrier { font-weight: 700; font-size: 0.95rem; }
    .category-badge {
      font-size: 0.72rem;
      font-weight: 700;
      color: var(--accent);
      background: var(--feature-bg);
      border: 1px solid var(--accent);
      border-radius: 999px;
      padding: 2px 10px;
      white-space: nowrap;
    }
    .detail__meta .network {
      font-size: 0.75rem;
      color: var(--muted);
      background: var(--bg);
      border-radius: 999px;
      padding: 2px 10px;
    }
    .detail__title {
      font-size: 1.6rem;
      margin: 0 0 12px;
      line-height: 1.3;
    }
    .detail__price {
      display: flex;
      align-items: baseline;
      gap: 6px;
      margin: 0 0 14px;
      flex-wrap: wrap;
    }
    .detail__price .price__value {
      font-size: 2.4rem;
      font-weight: 700;
      color: var(--accent);
    }
    .detail__price small { color: var(--muted); font-size: 0.85rem; }
    .detail__desc { margin: 0 0 16px; color: var(--text); }
    .detail__cta {
      margin-top: 18px;
      display: flex;
      flex-direction: column;
      gap: 8px;
      align-items: flex-start;
    }
    .cta-button {
      display: inline-flex;
      align-items: center;
      gap: 8px;
      padding: 12px 22px;
      font-size: 0.98rem;
      font-weight: 700;
      color: #fff;
      background: var(--accent);
      border-radius: 999px;
      text-decoration: none;
      box-shadow: 0 4px 14px rgba(0, 0, 0, 0.2);
      transition: transform 0.15s ease, opacity 0.15s ease;
    }
    .cta-button:hover { transform: translateY(-2px); opacity: 0.92; }
    .cta-button__icon { font-size: 1.05rem; }
    .cta-note { margin: 0; font-size: 0.78rem; color: var(--muted); }
    .detail__compare { margin-top: 16px; }
    .detail__compare .compare-toggle {
      position: static;
      width: auto;
      height: auto;
      display: inline-flex;
      align-items: center;
      gap: 8px;
      padding: 10px 18px;
      font-size: 0.9rem;
      font-family: inherit;
      font-weight: 600;
      color: var(--text);
      background: var(--bg);
      border: 1px solid var(--border);
      border-radius: 999px;
      cursor: pointer;
      transition: color 0.15s ease, border-color 0.15s ease, background 0.15s ease;
    }
    .detail__compare .compare-toggle:hover { color: var(--accent); border-color: var(--accent); }
    .compare-toggle__icon { width: 18px; height: 18px; flex: none; }
    .detail__compare .compare-toggle[aria-pressed="true"] {
      color: #fff;
      background: var(--accent);
      border-color: var(--accent);
    }
    .detail__section {
      background: var(--card-bg);
      border: 1px solid var(--border);
      border-radius: 16px;
      padding: 20px 24px;
      box-shadow: var(--shadow);
    }
    .detail__section h3 {
      margin: 0 0 14px;
      font-size: 1.05rem;
      display: flex;
      align-items: center;
      gap: 8px;
    }
    .detail__section h3::before {
      content: "";
      width: 4px;
      height: 1.05rem;
      border-radius: 999px;
      background: var(--accent);
      display: inline-block;
    }
    .detail__grid {
      margin: 0;
      display: grid;
      grid-template-columns: repeat(auto-fit, minmax(220px, 1fr));
      gap: 0 24px;
    }
    .detail__row {
      display: flex;
      justify-content: space-between;
      gap: 12px;
      padding: 10px 0;
      border-bottom: 1px solid var(--border);
    }
    .detail__row:last-child { border-bottom: none; }
    .detail__row dt { color: var(--muted); margin: 0; font-size: 0.9rem; }
    .detail__row dd { margin: 0; font-weight: 600; text-align: right; }
    .detail__row dd.is-accent { color: var(--accent); }
    .spec-note { font-size: 0.75rem; font-weight: 500; color: var(--muted); }
    .unlimited-badge {
      font-size: 0.72rem;
      font-weight: 700;
      color: #f5a623;
      background: rgba(245, 166, 35, 0.15);
      border: 1px solid #f5a623;
      border-radius: 999px;
      padding: 2px 10px;
      white-space: nowrap;
    }
    .bullet-list {
      margin: 0;
      padding-left: 1.2em;
      display: flex;
      flex-direction: column;
      gap: 8px;
    }
    .bullet-list li { line-height: 1.5; }
    .note-box {
      background: var(--bg);
      border: 1px dashed var(--border);
      border-radius: 12px;
      padding: 14px 18px;
      color: var(--muted);
      font-size: 0.88rem;
    }
    .note-box ul { margin: 0; padding-left: 1.2em; display: flex; flex-direction: column; gap: 6px; }
    .tier-note { margin: 0 0 14px; color: var(--muted); font-size: 0.88rem; }
    .tier-table {
      width: 100%;
      border-collapse: collapse;
      font-size: 0.9rem;
    }
    .tier-table th,
    .tier-table td {
      padding: 10px 12px;
      border-bottom: 1px solid var(--border);
      text-align: left;
    }
    .tier-table thead th {
      color: var(--muted);
      font-size: 0.8rem;
      font-weight: 700;
    }
    .tier-table tbody th { font-weight: 600; color: var(--text); }
    .tier-table tbody td {
      text-align: right;
      font-weight: 700;
      color: var(--accent);
      white-space: nowrap;
    }
    .tier-table tbody tr:last-child th,
    .tier-table tbody tr:last-child td { border-bottom: none; }
    .call-option-table td:last-child {
      text-align: left;
      font-weight: 500;
      color: var(--muted);
      white-space: normal;
    }
    .call-badge {
      font-size: 0.72rem;
      font-weight: 700;
      color: var(--accent);
      background: var(--feature-bg);
      border: 1px solid var(--accent);
      border-radius: 999px;
      padding: 2px 10px;
      white-space: nowrap;
    }
    .related {
      display: grid;
      grid-template-columns: repeat(auto-fill, minmax(200px, 1fr));
      gap: 12px;
    }
    .related-card {
      display: flex;
      flex-direction: column;
      gap: 4px;
      padding: 14px;
      border: 1px solid var(--border);
      border-radius: 12px;
      text-decoration: none;
      color: inherit;
      background: var(--bg);
      transition: border-color 0.15s ease, transform 0.15s ease;
    }
    .related-card:hover { border-color: var(--accent); transform: translateY(-2px); }
    .related-card__carrier { font-size: 0.75rem; color: var(--muted); }
    .related-card__name { font-weight: 700; font-size: 0.95rem; }
    .related-card__price { font-size: 0.85rem; color: var(--accent); font-weight: 700; }
    .notfound {
      background: var(--card-bg);
      border: 1px solid var(--border);
      border-radius: 16px;
      padding: 40px 24px;
      text-align: center;
      box-shadow: var(--shadow);
    }
    .notfound p { color: var(--muted); margin: 8px 0 20px; }
    .notfound .back-link { margin: 0; }
    .review-summary {
      display: flex;
      align-items: center;
      gap: 28px;
      flex-wrap: wrap;
      padding: 18px;
      background: var(--bg);
      border: 1px solid var(--border);
      border-radius: 14px;
      margin-bottom: 14px;
    }
    .review-summary__overall {
      display: flex;
      flex-direction: column;
      align-items: center;
      gap: 4px;
      min-width: 130px;
    }
    .review-summary__score {
      font-size: 2.6rem;
      font-weight: 800;
      line-height: 1;
      color: var(--accent);
    }
    .review-summary__count { font-size: 0.78rem; color: var(--muted); }
    .rating {
      position: relative;
      display: inline-block;
      font-size: 1.1rem;
      line-height: 1;
      letter-spacing: 2px;
      white-space: nowrap;
    }
    .rating__base { color: var(--border); }
    .rating__fill {
      position: absolute;
      top: 0;
      left: 0;
      overflow: hidden;
      white-space: nowrap;
      color: #f5a623;
    }
    .review-metrics {
      margin: 0;
      flex: 1;
      min-width: 240px;
      display: flex;
      flex-direction: column;
    }
    .review-metrics__row {
      display: flex;
      align-items: center;
      gap: 10px;
      padding: 8px 0;
      border-bottom: 1px solid var(--border);
    }
    .review-metrics__row:last-child { border-bottom: none; }
    .review-metrics dt { width: 64px; margin: 0; color: var(--muted); font-size: 0.88rem; }
    .review-metrics dd {
      margin: 0;
      display: flex;
      align-items: center;
      gap: 10px;
      font-weight: 700;
    }
    .review-metrics dd .rating { font-size: 0.95rem; }
    .review-metrics__value { color: var(--accent); min-width: 2.4em; }
    .review-note { margin: 0 0 18px; font-size: 0.8rem; color: var(--muted); }
    .review-status {
      margin: 0 0 14px;
      padding: 10px 14px;
      font-size: 0.85rem;
      border-radius: 10px;
      border: 1px solid var(--border);
    }
    .review-status--success {
      color: #2f9e44;
      background: rgba(47, 158, 68, 0.12);
      border-color: rgba(47, 158, 68, 0.5);
    }
    .review-status--error {
      color: #e5484d;
      background: rgba(229, 72, 77, 0.1);
      border-color: rgba(229, 72, 77, 0.5);
    }
    .review-list {
      display: flex;
      flex-direction: column;
      gap: 12px;
      margin: 0 0 6px;
    }
    .review-item {
      padding: 14px 16px;
      background: var(--bg);
      border: 1px solid var(--border);
      border-radius: 12px;
    }
    .review-item__head {
      display: flex;
      align-items: baseline;
      justify-content: space-between;
      gap: 12px;
      margin-bottom: 8px;
    }
    .review-item__nick { font-weight: 700; font-size: 0.9rem; }
    .review-item__date { font-size: 0.75rem; color: var(--muted); }
    .review-item__ratings {
      display: flex;
      flex-wrap: wrap;
      gap: 8px 18px;
      margin-bottom: 8px;
    }
    .review-item__metric {
      display: inline-flex;
      align-items: center;
      gap: 6px;
      font-size: 0.78rem;
      color: var(--muted);
    }
    .review-item__metric .rating { font-size: 0.85rem; letter-spacing: 1px; }
    .review-item__metric-value { color: var(--accent); font-weight: 700; }
    .review-item__comment {
      margin: 0;
      font-size: 0.9rem;
      line-height: 1.6;
      white-space: pre-wrap;
      word-break: break-word;
    }
    .review-empty { margin: 0 0 6px; font-size: 0.85rem; color: var(--muted); }
    .review-list__more { margin: 0 0 6px; font-size: 0.8rem; color: var(--muted); }
    .review-honeypot {
      position: absolute;
      left: -9999px;
      width: 1px;
      height: 1px;
      overflow: hidden;
    }
    .review-form {
      display: flex;
      flex-direction: column;
      gap: 12px;
      padding-top: 18px;
      border-top: 1px dashed var(--border);
    }
    .review-form h4 { margin: 0; font-size: 0.98rem; }
    .review-form__lead { margin: -8px 0 0; font-size: 0.82rem; color: var(--muted); }
    .review-field {
      display: flex;
      align-items: center;
      gap: 12px;
      flex-wrap: wrap;
      padding: 6px 0;
    }
    .review-field__label {
      width: 64px;
      font-size: 0.85rem;
      font-weight: 600;
      color: var(--muted);
    }
    .star-input {
      display: inline-flex;
      flex-direction: row-reverse;
      justify-content: flex-end;
      gap: 2px;
    }
    .star-input input {
      position: absolute;
      width: 1px;
      height: 1px;
      opacity: 0;
      pointer-events: none;
    }
    .star-input label {
      cursor: pointer;
      font-size: 1.7rem;
      line-height: 1;
      color: var(--border);
      transition: color 0.12s ease, transform 0.12s ease;
    }
    .star-input label:hover { transform: scale(1.08); }
    .star-input input:checked + label,
    .star-input input:checked ~ label,
    .star-input label:hover,
    .star-input label:hover ~ label { color: #f5a623; }
    .star-input input:focus-visible + label {
      outline: 2px solid var(--accent);
      outline-offset: 2px;
      border-radius: 4px;
    }
    .review-clear {
      padding: 4px 12px;
      font-size: 0.75rem;
      font-family: inherit;
      font-weight: 600;
      color: var(--muted);
      background: transparent;
      border: 1px solid var(--border);
      border-radius: 999px;
      cursor: pointer;
      transition: color 0.15s ease, border-color 0.15s ease;
    }
    .review-clear:hover { color: var(--accent); border-color: var(--accent); }
    .review-text { display: flex; flex-direction: column; gap: 6px; }
    .review-text label { font-size: 0.85rem; font-weight: 600; color: var(--muted); }
    .review-text input {
      width: 100%;
      padding: 9px 11px;
      font-size: 0.9rem;
      font-family: inherit;
      color: var(--text);
      background: var(--bg);
      border: 1px solid var(--border);
      border-radius: 9px;
      outline: none;
      transition: border-color 0.15s ease, box-shadow 0.15s ease;
    }
    .review-text textarea {
      width: 100%;
      padding: 9px 11px;
      font-size: 0.9rem;
      font-family: inherit;
      color: var(--text);
      background: var(--bg);
      border: 1px solid var(--border);
      border-radius: 9px;
      outline: none;
      resize: vertical;
      transition: border-color 0.15s ease, box-shadow 0.15s ease;
    }
    .review-text input:focus,
    .review-text textarea:focus {
      border-color: var(--accent);
      box-shadow: 0 0 0 3px var(--feature-bg);
    }
    .review-form__actions {
      display: flex;
      align-items: center;
      gap: 12px;
      flex-wrap: wrap;
    }
    .review-submit {
      padding: 10px 22px;
      font-size: 0.9rem;
      font-family: inherit;
      font-weight: 700;
      color: #fff;
      background: var(--accent);
      border: 1px solid var(--accent);
      border-radius: 999px;
      cursor: pointer;
      transition: opacity 0.15s ease, transform 0.15s ease;
    }
    .review-submit:hover { opacity: 0.92; transform: translateY(-1px); }

    .compare-head {
      display: flex;
      align-items: baseline;
      justify-content: space-between;
      gap: 12px;
      flex-wrap: wrap;
      margin: 0 0 18px;
    }
    .compare-head h2 { margin: 0; font-size: 1.25rem; }
    .compare-head__count { color: var(--muted); font-size: 0.85rem; }
    .compare-scroll {
      overflow-x: auto;
      background: var(--card-bg);
      border: 1px solid var(--border);
      border-radius: 12px;
      box-shadow: var(--shadow);
    }
    .compare-table {
      width: 100%;
      border-collapse: collapse;
      font-size: 0.88rem;
    }
    .compare-table th,
    .compare-table td {
      padding: 12px 14px;
      border-bottom: 1px solid var(--border);
      border-right: 1px solid var(--border);
      vertical-align: top;
      text-align: left;
    }
    .compare-table tr > *:last-child { border-right: none; }
    .compare-table tbody tr:last-child th,
    .compare-table tbody tr:last-child td { border-bottom: none; }
    .compare-table thead th {
      background: var(--bg);
      border-bottom: 2px solid var(--border);
    }
    .compare-table tbody th[scope="row"] {
      position: sticky;
      left: 0;
      z-index: 1;
      width: 140px;
      min-width: 140px;
      color: var(--muted);
      font-weight: 600;
      background: var(--card-bg);
      border-right: 1px solid var(--border);
    }
    .compare-table__corner {
      position: sticky;
      left: 0;
      z-index: 2;
      width: 140px;
      min-width: 140px;
      color: var(--muted);
      font-size: 0.8rem;
      background: var(--bg);
    }
    .compare-col { min-width: 180px; }
    .compare-col__carrier { font-size: 0.75rem; color: var(--muted); }
    .compare-col__name {
      font-size: 1rem;
      font-weight: 700;
      margin: 2px 0 10px;
      line-height: 1.35;
    }
    .compare-col__actions {
      display: flex;
      align-items: center;
      gap: 8px;
    }
    .compare-col__detail {
      font-size: 0.78rem;
      font-weight: 700;
      text-decoration: none;
    }
    .compare-col__detail:hover { text-decoration: underline; }
    .compare-remove {
      margin-left: auto;
      width: 28px;
      height: 28px;
      padding: 0;
      display: flex;
      align-items: center;
      justify-content: center;
      font-size: 1rem;
      line-height: 1;
      color: var(--muted);
      background: var(--bg);
      border: 1px solid var(--border);
      border-radius: 999px;
      cursor: pointer;
      transition: color 0.15s ease, border-color 0.15s ease, background 0.15s ease;
    }
    .compare-remove:hover {
      color: #fff;
      background: #e5484d;
      border-color: #e5484d;
    }
    .compare-price { font-size: 1.05rem; font-weight: 700; color: var(--accent); }
    .compare-price small { display: block; font-weight: 500; color: var(--muted); font-size: 0.72rem; }
    .compare-option-bar {
      display: flex;
      align-items: center;
      gap: 12px;
      flex-wrap: wrap;
      margin: 0 0 14px;
      padding: 12px 16px;
      background: var(--card-bg);
      border: 1px solid var(--border);
      border-radius: 12px;
      box-shadow: var(--shadow);
    }
    .compare-option-bar__label {
      display: inline-flex;
      align-items: center;
      gap: 8px;
      font-size: 0.9rem;
      font-weight: 600;
      color: var(--muted);
    }
    .compare-option-bar__select {
      padding: 8px 12px;
      font-size: 0.9rem;
      font-family: inherit;
      color: var(--text);
      background: var(--bg);
      border: 1px solid var(--border);
      border-radius: 9px;
      cursor: pointer;
      outline: none;
      transition: border-color 0.2s ease, box-shadow 0.2s ease;
    }
    .compare-option-bar__select:focus {
      border-color: var(--accent);
      box-shadow: 0 0 0 3px var(--feature-bg);
    }
    .compare-option-bar__hint { font-size: 0.78rem; color: var(--muted); }
    .compare-fee__breakdown {
      display: block;
      margin-top: 4px;
      font-size: 0.72rem;
      font-weight: 500;
      color: var(--muted);
    }
    .compare-fee__none { color: var(--muted); font-weight: 600; }
    .compare-fee__note {
      display: block;
      margin-top: 2px;
      font-size: 0.68rem;
      font-weight: 600;
      color: var(--accent);
    }
    .compare-call-options {
      margin: 0;
      padding: 0;
      list-style: none;
      display: flex;
      flex-direction: column;
      gap: 4px;
    }
    .compare-call-options li { display: flex; justify-content: space-between; gap: 8px; }
    .compare-call-options span:last-child {
      font-weight: 700;
      color: var(--accent);
      white-space: nowrap;
    }
    .compare-list { margin: 0; padding-left: 1.1em; display: flex; flex-direction: column; gap: 4px; }
    .compare-tiers { margin: 0; padding: 0; list-style: none; display: flex; flex-direction: column; gap: 4px; }
    .compare-tiers li { display: flex; justify-content: space-between; gap: 8px; }
    .compare-tiers span:last-child { font-weight: 700; color: var(--accent); white-space: nowrap; }
    .compare-empty {
      background: var(--card-bg);
      border: 1px solid var(--border);
      border-radius: 16px;
      padding: 48px 24px;
      text-align: center;
      box-shadow: var(--shadow);
    }
    .compare-empty__icon {
      width: 44px;
      height: 44px;
      color: var(--muted);
      margin-bottom: 12px;
    }
    .compare-empty h2 { margin: 0 0 8px; font-size: 1.2rem; }
    .compare-empty p { color: var(--muted); margin: 0 0 20px; }
    .compare-empty .cta-button { color: #fff; }
    .compare-actions { margin-top: 20px; display: flex; gap: 12px; flex-wrap: wrap; }
    .compare-back {
      display: inline-flex;
      align-items: center;
      gap: 6px;
      font-size: 0.9rem;
      font-weight: 600;
      color: var(--accent);
      text-decoration: none;
    }
    .compare-back:hover { text-decoration: underline; }

    .admin-error {
      margin: 0 0 20px;
      padding: 12px 16px;
      font-size: 0.88rem;
      color: #e5484d;
      background: rgba(229, 72, 77, 0.1);
      border: 1px solid rgba(229, 72, 77, 0.6);
      border-radius: 12px;
    }
    .admin-error strong { font-weight: 700; }
    .admin-error ul { margin: 6px 0 0; padding-left: 1.2em; }
    .admin-toolbar {
      display: flex;
      align-items: center;
      justify-content: space-between;
      gap: 12px;
      flex-wrap: wrap;
      margin: 0 0 16px;
    }
    .admin-toolbar__title { margin: 0; font-size: 1.3rem; }
    .admin-toolbar__count { color: var(--muted); font-size: 0.85rem; }
    .admin-toolbar__actions { display: flex; align-items: center; gap: 8px; flex-wrap: wrap; }
    .admin-btn {
      display: inline-flex;
      align-items: center;
      justify-content: center;
      gap: 6px;
      padding: 9px 16px;
      font-size: 0.85rem;
      font-family: inherit;
      font-weight: 600;
      border-radius: 10px;
      text-decoration: none;
      cursor: pointer;
      border: 1px solid var(--border);
      background: var(--bg);
      color: var(--text);
      transition: border-color 0.15s ease, color 0.15s ease, background 0.15s ease, opacity 0.15s ease;
    }
    .admin-btn:hover { border-color: var(--accent); color: var(--accent); }
    .admin-btn--primary {
      color: #fff;
      background: var(--accent);
      border-color: var(--accent);
    }
    .admin-btn--primary:hover { opacity: 0.9; color: #fff; }
    .admin-btn--danger { color: #e5484d; border-color: rgba(229, 72, 77, 0.5); }
    .admin-btn--danger:hover { color: #fff; background: #e5484d; border-color: #e5484d; }
    .admin-search { position: relative; margin: 0 0 16px; }
    .admin-search__icon {
      position: absolute;
      top: 50%;
      left: 12px;
      width: 18px;
      height: 18px;
      transform: translateY(-50%);
      color: var(--muted);
      pointer-events: none;
    }
    .admin-search__input {
      width: 100%;
      padding: 11px 12px 11px 38px;
      font-size: 0.95rem;
      font-family: inherit;
      color: var(--text);
      background: var(--card-bg);
      border: 1px solid var(--border);
      border-radius: 10px;
      outline: none;
      transition: border-color 0.2s ease, box-shadow 0.2s ease;
    }
    .admin-search__input::placeholder { color: var(--muted); }
    .admin-search__input:focus {
      border-color: var(--accent);
      box-shadow: 0 0 0 3px var(--feature-bg);
    }
    .admin-card {
      background: var(--card-bg);
      border: 1px solid var(--border);
      border-radius: 14px;
      box-shadow: var(--shadow);
      overflow: hidden;
    }
    .admin-table {
      width: 100%;
      border-collapse: collapse;
      font-size: 0.88rem;
    }
    .admin-table th,
    .admin-table td {
      padding: 12px 14px;
      text-align: left;
      border-bottom: 1px solid var(--border);
      vertical-align: middle;
    }
    .admin-table thead th {
      font-size: 0.78rem;
      font-weight: 700;
      color: var(--muted);
      background: var(--bg);
      white-space: nowrap;
    }
    .admin-table tbody tr:last-child td { border-bottom: none; }
    .admin-table tbody tr:hover { background: var(--feature-bg); }
    .admin-table__num { white-space: nowrap; font-weight: 700; color: var(--accent); }
    .admin-table__actions { display: flex; gap: 8px; flex-wrap: wrap; }
    .admin-empty { padding: 40px 16px; text-align: center; color: var(--muted); }
    .admin-form { display: flex; flex-direction: column; gap: 18px; }
    .admin-form__section {
      background: var(--card-bg);
      border: 1px solid var(--border);
      border-radius: 14px;
      padding: 20px 22px;
      box-shadow: var(--shadow);
    }
    .admin-form__section h3 {
      margin: 0 0 16px;
      font-size: 1rem;
      display: flex;
      align-items: center;
      gap: 8px;
    }
    .admin-form__section h3::before {
      content: "";
      width: 4px;
      height: 1rem;
      border-radius: 999px;
      background: var(--accent);
      display: inline-block;
    }
    .form-grid {
      display: grid;
      grid-template-columns: repeat(auto-fit, minmax(220px, 1fr));
      gap: 14px 18px;
    }
    .form-field { display: flex; flex-direction: column; gap: 6px; min-width: 0; }
    .form-field--wide { grid-column: 1 / -1; }
    .form-field label { font-size: 0.82rem; font-weight: 600; color: var(--muted); }
    .form-field input,
    .form-field select,
    .form-field textarea {
      width: 100%;
      padding: 9px 11px;
      font-size: 0.9rem;
      font-family: inherit;
      color: var(--text);
      background: var(--bg);
      border: 1px solid var(--border);
      border-radius: 9px;
      outline: none;
      transition: border-color 0.15s ease, box-shadow 0.15s ease;
    }
    .form-field textarea { min-height: 88px; resize: vertical; line-height: 1.5; }
    .form-field input:focus,
    .form-field select:focus,
    .form-field textarea:focus {
      border-color: var(--accent);
      box-shadow: 0 0 0 3px var(--feature-bg);
    }
    .form-field__hint { margin: 0; font-size: 0.75rem; color: var(--muted); }
    .admin-form__actions {
      display: flex;
      align-items: center;
      gap: 12px;
      flex-wrap: wrap;
    }
    .notfound {
      background: var(--card-bg);
      border: 1px solid var(--border);
      border-radius: 16px;
      padding: 40px 24px;
      text-align: center;
      box-shadow: var(--shadow);
    }
    .notfound p { color: var(--muted); margin: 8px 0 20px; }
    .admin-review__ratings { display: flex; flex-wrap: wrap; gap: 4px 12px; font-size: 0.78rem; }
    .admin-review__rating { white-space: nowrap; color: var(--muted); }
    .admin-review__rating strong { color: var(--accent); }
    .admin-review__comment {
      margin: 0;
      max-width: 420px;
      font-size: 0.85rem;
      line-height: 1.5;
      white-space: pre-wrap;
      word-break: break-word;
    }
    .admin-review__nick { font-weight: 600; }