/* Phosphor icon sizing helpers */
    .ph { font-size: inherit; vertical-align: -0.15em; }
    .ph-lg { font-size: 20px; }
    .ph-md { font-size: 16px; }
    .ph-sm { font-size: 13px; }
    [x-cloak] { display: none !important; }

:root {
      --bg: #111; --surface: #1a1a1a; --surface2: #222; --border: #2a2a2a;
      --accent: #3b9edd; --text: #f0f0f0; --muted: #999; --radius: 10px;
    }
    * { box-sizing: border-box; margin: 0; padding: 0; }
    body { background: var(--bg); color: var(--text); font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', sans-serif; }
    .dashboard-panel-hidden { display: none !important; }
    body.dashboard-route .tabs,
    body.dashboard-route .filter-section { display: none !important; }

    /* ── App layout ── */
    #app { display: flex; min-height: 100vh; }
    #sidebar {
      width: 260px; flex-shrink: 0; background: var(--surface);
      border-right: 1px solid var(--border); padding: 8px 12px 14px;
      position: sticky; top: 0; height: 100vh; overflow-y: auto; display: flex; flex-direction: column; gap: 0;
    }
    #main { flex: 1; min-width: 0; }
    @media (max-width: 767px) {
      #app { flex-direction: column; }
      #sidebar { width: 100%; height: auto; position: static; padding: 0; flex-direction: column; padding-bottom: 0; }
      .stats-grid { display: none !important; }
      #toolbar { position: fixed; bottom: 0; left: 0; right: 0; z-index: 100; background: var(--surface); border-top: 1px solid var(--border); display: flex; align-items: stretch; gap: 4px; padding: 4px 6px; height: 56px; box-sizing: border-box; overflow: hidden; }
      #toolbar .nav-label { display: none; }
      #toolbar .nav-icon { font-size: 22px; }
      .tabs { margin: 0 !important; border-bottom: 1px solid var(--border); }
      .tabs + .tabs { border-top: 0; }
      .filter-section { padding: 6px 8px; display: grid !important; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 6px; align-items: stretch; background: var(--surface); border-bottom: 1px solid var(--border); }
      .filter-section-label { display: none !important; }
      .filter-chip { position: relative; min-width: 0; display: flex !important; align-items: center; width: 100%; }
      .filter-chip-icon { position: absolute; left: 8px; font-size: 13px; pointer-events: none; z-index: 1; }
      #filterUniverse, #filterCategory, #filterSize, #filterPrice, #filterBrandMobile, #filterFavoriteStatus, #filterListingStatus, #filterAuctionEnd, #filterFeedSort, #filterTag { width: 100% !important; padding: 7px 8px 7px 26px !important; font-size: 12px !important; border-radius: 8px; height: 34px; margin-bottom: 0 !important; }
      .filter-select.full-w { margin-bottom: 0 !important; }
      #main { justify-content: flex-start; padding-bottom: 64px; }
      .feed { max-width: 100%; }
      .desktop-only { display: none !important; }
    }
    @media (min-width: 768px) {
      .mobile-only { display: none !important; }
    }

    /* Sidebar components - Redesigned */
    .sidebar-logo { 
      background: linear-gradient(135deg, var(--accent), #2b7ab9);
      margin: -8px -12px 20px -12px;
      padding: 20px 16px 16px;
      border-radius: 0 0 16px 16px;
      box-shadow: 0 4px 12px rgba(59, 158, 221, 0.15);
    }
    @media (max-width: 767px) {
      .sidebar-logo { 
        margin: 0;
        border-radius: 0;
        padding: 10px 10px 4px;
        border-bottom: none;
        box-shadow: 0 2px 8px rgba(0,0,0,0.1);
      }
      .logo-icon { width: 28px !important; height: 28px !important; border-radius: 8px !important; }
      .logo-icon img { width: 24px !important; height: 24px !important; }
      .logo { font-size: 15px !important; }
      .btn-icon { width: 28px !important; height: 28px !important; font-size: 14px !important; }
    }
    .sidebar-header-content {
      display: flex;
      align-items: center;
      justify-content: space-between;
      width: 100%;
    }
    .logo-wrapper {
      cursor: pointer;
      display: flex;
      align-items: center;
      gap: 12px;
      transition: transform 0.2s;
    }
    .logo-wrapper:hover { transform: translateX(2px); }
    .logo-icon {
      width: 40px;
      height: 40px;
      background: rgba(255, 255, 255, 0.15);
      backdrop-filter: blur(10px);
      border-radius: 12px;
      display: flex;
      align-items: center;
      justify-content: center;
      font-size: 24px;
    }
    .logo-text {
      display: flex;
      flex-direction: column;
      gap: 2px;
    }
    .logo { 
      font-size: 20px; 
      font-weight: 800; 
      color: white;
      letter-spacing: -0.5px;
      text-shadow: 0 2px 4px rgba(0,0,0,0.1);
    }
    .logo-variant-badge {
      display: inline-flex;
      align-items: center;
      gap: 4px;
      width: fit-content;
      padding: 2px 8px;
      border-radius: 999px;
      background: rgba(255, 255, 255, 0.18);
      border: 1px solid rgba(255, 255, 255, 0.28);
      color: white;
      font-size: 10px;
      font-weight: 700;
      letter-spacing: 0.04em;
      text-transform: uppercase;
    }

    .sidebar-actions { 
      display: flex; 
      gap: 8px; 
    }
    .badge { background: #e53935; color: #fff; font-size: 11px; font-weight: 700;
      padding: 2px 7px; border-radius: 20px; display: none; }
    .badge.visible { display: inline; }
    .btn-icon { 
      background: rgba(255, 255, 255, 0.15);
      backdrop-filter: blur(10px);
      border: 1px solid rgba(255, 255, 255, 0.2);
      color: white;
      width: 36px; 
      height: 36px;
      border-radius: 10px;
      cursor: pointer; 
      font-size: 16px; 
      display: flex; 
      align-items: center; 
      justify-content: center;
      transition: all 0.2s;
    }
    .btn-icon:hover { 
      background: rgba(255, 255, 255, 0.25);
      transform: scale(1.05);
      box-shadow: 0 4px 8px rgba(0,0,0,0.15);
    }
    .btn-icon:active { transform: scale(0.95); }

    /* Navigation Pills - Modern segmented control */
    .nav-pills { 
      display: flex; 
      gap: 2px; 
      margin-bottom: 18px; 
      background: var(--surface2);
      padding: 4px;
      border-radius: 12px;
    }
    .nav-pill { 
      flex: 1; 
      padding: 6px 4px; 
      background: var(--surface2);
      border: 1px solid var(--border);
      color: var(--muted); 
      border-radius: 8px; 
      font-size: 11px; 
      font-weight: 600; 
      cursor: pointer; 
      display: flex; 
      flex-direction: column; 
      align-items: center;
      justify-content: center;
      gap: 3px;
      transition: all 0.2s;
      position: relative;
      box-sizing: border-box;
    }
    .nav-pill:hover:not(.active) { 
      background: rgba(255,255,255,0.05);
      color: var(--text);
    }
    .nav-pill.active { 
      background: var(--accent);
      color: white;
      box-shadow: 0 2px 8px rgba(59, 158, 221, 0.25);
    }
    .nav-pill.active .nav-icon { transform: scale(1.1); }
    .nav-icon { 
      font-size: 18px;
      transition: transform 0.2s;
    }
    .nav-label { 
      font-size: 11px;
      font-weight: 600;
      display: block;
    }
    .nav-pill-badge {
      position: absolute;
      top: 4px;
      right: 4px;
      min-width: 18px;
      height: 18px;
      padding: 0 5px;
      border-radius: 999px;
      background: #e53935;
      color: #fff;
      font-size: 10px;
      font-weight: 800;
      line-height: 18px;
      text-align: center;
      display: none;
      box-shadow: 0 1px 6px rgba(0,0,0,0.25);
    }
    .nav-pill-badge.visible { display: inline-block; }
    @media (max-width: 767px) {
      .nav-pills {
        position: fixed;
        bottom: 0;
        left: 0;
        right: 0;
        z-index: 100;
        background: var(--surface);
        border-top: 1px solid var(--border);
        margin-bottom: 0;
        border-radius: 0;
        padding: 4px 6px;
        height: 56px;
        box-sizing: border-box;
        align-items: stretch;
      }
      .nav-pills .nav-pill {
        padding: 6px 4px;
        justify-content: center;
      }
    }

    /* Stats */
    .stats-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 7px; margin-bottom: 14px; }
    .stat-box { background: var(--surface2); border-radius: 8px; padding: 8px; display: flex; flex-direction: column; align-items: center; }
    .stat-n { font-size: 19px; font-weight: 700; }
    .stat-label { font-size: 10px; color: var(--muted); }
    .stat-n.orange { color: var(--accent); }

    /* Tabs */
    .tabs { display: flex; gap: 5px; flex-wrap: wrap; margin-bottom: 6px; }
    .tabs-source { margin-bottom: 10px; padding-top: 4px; border-top: 1px solid rgba(255,255,255,0.06); }
    .tab {
      flex: 1 1 0;
      min-width: 0;
      padding: 6px 4px;
      text-align: center;
      font-size: 11px;
      font-weight: 600;
      color: var(--muted);
      cursor: pointer;
      border: 1px solid var(--border);
      border-radius: 8px;
      background: var(--surface2);
      transition: background .15s, border-color .15s, color .15s;
      white-space: nowrap;
      overflow: hidden;
      text-overflow: ellipsis;
      letter-spacing: 0.2px;
    }
    @media (min-width: 768px) {
      .tab { flex: 0 1 auto; padding: 6px 14px; }
    }
    .tab.active {
      color: #fff;
      border-color: var(--accent);
      background: var(--accent);
    }

    /* Filter labels */
    .filter-section-label { font-size: 10px; color: var(--muted); text-transform: uppercase; letter-spacing: .5px; margin-bottom: 5px; margin-top: 12px; }

    /* Brand dropdown */
    .brand-filter-wrap { position: relative; margin-bottom: 6px; }
    .brand-trigger { width: 100%; background: var(--surface2); border: 1px solid var(--border); color: var(--text);
      padding: 8px 10px; border-radius: 8px; font-size: 13px; cursor: pointer;
      display: flex; justify-content: space-between; align-items: center; gap: 6px; text-align: left; }
    .brand-dropdown { display: none; position: absolute; left: 0; right: 0; top: 100%; z-index: 300;
      background: var(--surface); border: 1px solid var(--accent); border-top: none;
      border-radius: 0 0 8px 8px; max-height: 250px; overflow: hidden; flex-direction: column; }
    .brand-dropdown.open { display: flex; }
    @media (min-width: 768px) {
      .brand-dropdown { display: none; position: absolute; left: 0; right: 0; top: 100%; z-index: 300;
        background: var(--surface); border: 1px solid var(--accent); border-top: none;
        border-radius: 0 0 8px 8px; max-height: 300px; overflow: hidden; flex-direction: column; }
      .brand-dropdown.open { display: flex; }
      .brand-trigger { border-radius: 8px; }
    }
    .brand-search { padding: 7px 10px; background: var(--surface2); border: none; border-bottom: 1px solid var(--border);
      color: var(--text); font-size: 13px; width: 100%; outline: none; }
    .brand-actions { display: flex; border-bottom: 1px solid var(--border); }
    .brand-actions button { flex: 1; padding: 6px 8px; background: var(--surface2); border: none; color: var(--muted); font-size: 11px; cursor: pointer; }
    .brand-actions button:first-child { border-right: 1px solid var(--border); }
    .brand-actions button:hover { color: var(--text); }
    .brand-list { overflow-y: auto; flex: 1; }
    .brand-option { display: flex; align-items: center; gap: 8px; padding: 7px 10px; cursor: pointer; font-size: 13px; }
    .brand-option:hover { background: var(--surface2); }
    .brand-option input[type=checkbox] { accent-color: var(--accent); width: 14px; height: 14px; flex-shrink: 0; }

    /* Brand tags */
    .selected-brands { display: flex; flex-wrap: wrap; gap: 5px; padding: 4px 0 8px; }
    .selected-brands:empty { padding: 0; }
    .brand-tag { display: flex; align-items: center; gap: 3px; background: var(--accent); color: #fff;
      font-size: 11px; font-weight: 600; padding: 3px 7px; border-radius: 20px; }
    .brand-tag-remove { cursor: pointer; opacity: .8; }
    .brand-tag-remove:hover { opacity: 1; }

    /* Filter selects */
    .filter-chip { position: relative; display: flex; align-items: center; min-width: 0; }
    .filter-chip-icon { position: absolute; left: 8px; font-size: 13px; pointer-events: none; z-index: 1; color: var(--muted); }
    .filter-select { background: var(--surface2); border: 1px solid var(--border); color: var(--text);
      padding: 8px 10px 8px 28px; border-radius: 8px; font-size: 13px; min-height: 36px; }
    .filter-select.full-w { width: 100%; margin-bottom: 0; }
    .filter-section { display: flex; flex-direction: column; }

    /* ── Feed ── */
    #main { display: flex; flex-direction: column; align-items: center; }
    #health-status { width: 100%; max-width: 680px; padding: 10px 12px 0; box-sizing: border-box; }
    .feed { padding: 12px; width: 100%; max-width: 680px; }

    /* ── Item card — structured grid ── */
    .item-card {
      background: var(--surface); border: 1px solid var(--border);
      border-radius: 14px; margin-bottom: 10px; overflow: hidden;
      display: grid; grid-template-columns: 118px minmax(0, 1fr); gap: 12px;
      padding: 12px; transition: border-color .15s;
      align-items: start;
    }
    .item-card.is-new { border-left: 3px solid #e53935; }
    .item-card:hover { border-color: #3a3a3a; }
    .item-media-column { width: 118px; min-width: 118px; display: grid; align-content: start; gap: 8px; }
    .item-card-media-link { width: 100%; min-width: 0; flex-shrink: 0; display: block; color: inherit; text-decoration: none; }
    .item-card-content-link { display: flex; flex: 1; min-height: 0; flex-direction: column; color: inherit; text-decoration: none; gap: 8px; }
    .item-card-content-link:hover .item-title,
    .item-card-media-link:hover ~ .item-body .item-title,
    .item-card-content-link:focus-visible .item-title { text-decoration: underline; }
    .item-card-link:focus-visible { outline: 2px solid var(--accent); outline-offset: -2px; }
    .item-img-wrap { width: 100%; min-width: 0; position: relative; flex-shrink: 0; background: var(--surface2); border-radius: 12px; overflow: hidden; }
    .item-img { width: 100%; height: 100%; object-fit: cover; display: block; aspect-ratio: 1/1; }
    .item-img-placeholder { width: 100%; aspect-ratio: 1/1; display: flex; align-items: center; justify-content: center; font-size: 36px; }
    .item-time-overlay { position: absolute; bottom: 0; left: 0; right: 0; background: rgba(0,0,0,0.68); color: #ddd; font-size: 8.5px; line-height: 1.3; padding: 3px 4px; text-align: center; white-space: normal; overflow: hidden; }
    .item-source-badge { position: absolute; top: 6px; left: 6px; font-size: 10px; font-weight: 700;
      padding: 2px 6px; border-radius: 8px; }
    .source-mercari { background: rgba(59,158,221,0.9); color: #fff; }
    .source-mercari-auction { background: rgba(229,57,53,0.92); color: #fff; }
    .source-yahoo   { background: rgba(229,80,0,0.9); color: #fff; }
    .item-new-badge { position: absolute; top: 6px; right: 6px; background: #e53935; color: #fff;
      font-size: 10px; font-weight: 700; padding: 2px 6px; border-radius: 8px; }
    .item-body { min-width: 0; display: grid; gap: 8px; align-content: start; }
    .item-card-heading { display: grid; gap: 2px; }
    .item-brand { font-size: 11px; font-weight: 700; color: var(--accent); text-transform: uppercase; letter-spacing: .5px; }
    .item-card-category { display: flex; align-items: center; gap: 3px; min-width: 0; color: var(--muted); font-size: 10px; font-weight: 700; line-height: 1.25; }
    .item-card-category i { color: var(--accent); flex-shrink: 0; }
    .item-verification-panel { margin-top: 8px; padding: 8px 9px; border: 1px solid rgba(244, 180, 0, .38); border-radius: 8px; background: rgba(244, 180, 0, .08); }
    .item-verification-reason { color: #f6cf68; font-size: 11px; font-weight: 700; line-height: 1.35; }
    .item-verification-actions { display: flex; gap: 6px; flex-wrap: wrap; margin-top: 7px; }
    .btn-verification { border: 0; border-radius: 6px; padding: 5px 8px; color: #fff; font-size: 10px; font-weight: 700; cursor: pointer; }
    .btn-verification-accept { background: #2e7d32; }
    .btn-verification-reject { background: #6d4c41; }
    .btn-verification-duplicate { background: #546e7a; }
    .item-ignore-panel { display:flex; align-items:center; justify-content:space-between; gap:8px; margin-top:6px; padding:0; border:0; background:transparent; }
    .item-ignore-panel .item-verification-reason { color:var(--muted); font-size:10px; font-weight:500; }
    .item-ignore-panel .item-verification-actions { margin-top:0; }
    .item-ignore-panel .btn-verification { padding:4px 7px; opacity:.82; }
    .item-title { font-size: 13px; line-height: 1.4;
      display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden; }
    .item-details { display: grid; gap: 6px; margin-bottom: 0; }
    .item-summary-grid { display: grid; grid-template-columns: minmax(0, 112px) minmax(0, 1fr); gap: 8px; align-items: stretch; }
    .item-price-panel,
    .item-meta-panel {
      min-width: 0;
      display: grid;
      gap: 6px;
      padding: 8px 9px;
      border: 1px solid rgba(255,255,255,0.06);
      border-radius: 10px;
      background: rgba(255,255,255,0.03);
    }
    .item-price-label { font-size: 10px; text-transform: uppercase; letter-spacing: .4px; color: var(--muted); }
    .item-price-primary { display: grid; gap: 4px; }
    .item-row { display: flex; align-items: baseline; gap: 6px; font-size: 12px; min-width: 0; flex-wrap: wrap; }
    .row-label { color: var(--muted); flex-shrink: 0; min-width: 50px; }
    .row-val { font-weight: 600; min-width: 0; overflow-wrap: anywhere; }
    .row-val.is-sold { color:#ff6d7a; }
    .row-val.jpy { font-size: 14px; font-weight: 700; color: var(--text); }
    .row-val.eur { font-size: 14px; font-weight: 700; color: var(--accent); font-style: italic; }
    .item-chip-row { display:flex; flex-wrap:wrap; gap:6px; }
    .item-chip { display:inline-flex; align-items:center; gap:3px; padding:3px 6px; border-radius:999px; font-size:10px; font-weight:700; border:1px solid var(--border); background:var(--surface2); color:var(--text); white-space:nowrap; flex-shrink:0; }
    .item-chip-size { color: var(--accent); border-color: rgba(59,158,221,0.3); background: rgba(59,158,221,0.12); }
    .item-chip-llm-size { color: #c084fc; border-color: rgba(192,132,252,0.3); background: rgba(192,132,252,0.1); }
    .item-chip-priority-urgent,
    .item-chip-priority-haute,
    .item-chip-priority-moyenne,
    .item-chip-priority-basse,
    .item-chip-priority-enchere { color:var(--text); border-color:rgba(255,255,255,0.12); background:rgba(255,255,255,0.05); flex-shrink:0; }
    .item-chip-beams-plus { color:#7ee787; border-color:rgba(126,231,135,0.3); background:rgba(126,231,135,0.1); }
    .item-chip-beams-verify { color:#ffa726; border-color:rgba(255,167,38,0.3); background:rgba(255,167,38,0.1); }
    .item-chip-priority-enchere strong { color:#ffb74d; }
    .item-row-created-at {
      display: grid;
      grid-template-columns: minmax(56px, auto) minmax(0, 1fr);
      gap: 6px;
      padding-top: 4px;
      border-top: 1px solid rgba(255,255,255,0.06);
      align-items: start;
    }
    .item-row-created-at .row-label { min-width: 0; }
    .item-row-created-at .row-val {
      margin-left: 0;
      text-align: right;
      white-space: normal;
      word-break: normal;
      overflow-wrap: break-word;
    }
    .item-taxonomy-preview {
      display: grid;
      gap: 4px;
      padding: 8px 9px;
      border: 1px solid rgba(255,255,255,0.06);
      border-radius: 10px;
      background: rgba(255,255,255,0.025);
      overflow: hidden;
    }
    .item-taxonomy-preview .item-row {
      display: grid;
      grid-template-columns: 74px minmax(0, 1fr);
      align-items: start;
      gap: 6px;
      min-width: 0;
    }
    .item-taxonomy-preview .row-label {
      min-width: 0;
      padding-top: 1px;
    }
    .item-taxonomy-preview .row-val {
      min-width: 0;
      line-height: 1.32;
      word-break: break-word;
      overflow-wrap: anywhere;
    }
    .item-chip-sale-buy { color:#7ee787; border-color:rgba(126,231,135,0.28); background:rgba(126,231,135,0.12); }
    .item-chip-sale-auction { color:#ffb86b; border-color:rgba(255,184,107,0.28); background:rgba(255,184,107,0.12); }
    .item-chip-duplicate { color:#9ecbff; border-color:rgba(158,203,255,0.24); background:rgba(158,203,255,0.10); }
    .item-chip-tag { color: var(--muted); }
    .item-chip-taxonomy { border-color: rgba(255,255,255,0.09); }
    .item-chip-universe { color:#9ecbff; border-color:rgba(106,173,255,0.24); background:rgba(106,173,255,0.09); }
    .item-chip-category { color:#d7dce2; border-color:rgba(255,255,255,0.1); background:rgba(255,255,255,0.04); }
    .item-media-tags { display: grid; gap: 6px; }
    .item-media-tags .item-chip-row { gap: 5px; }
    .item-media-tags .item-chip {
      width: 100%;
      justify-content: center;
      padding: 5px 8px;
      border-radius: 10px;
      font-size: 10px;
      background: rgba(255,255,255,0.03);
    }
    .item-chip-condition { color:#d6c28a; border-color:rgba(214,194,138,0.28); background:rgba(214,194,138,0.08); }
    .item-chip-condition-good { color:#9be7a7; border-color:rgba(126,231,135,0.28); background:rgba(126,231,135,0.12); }
    .item-chip-condition-used { color:#d6c28a; border-color:rgba(214,194,138,0.28); background:rgba(214,194,138,0.08); }
    .item-chip-condition-risky { color:#ff9d9d; border-color:rgba(255,125,125,0.26); background:rgba(255,125,125,0.10); }
    .item-chip-condition-unknown { color:#b9c2cf; border-color:rgba(185,194,207,0.22); background:rgba(185,194,207,0.08); }
    .item-chip-condition-neutral { color:#cfd8dc; border-color:rgba(207,216,220,0.2); background:rgba(207,216,220,0.06); }
    .item-chip-duplicate { color:#ffd180; border-color:rgba(255,209,128,0.24); background:rgba(255,209,128,0.08); }
    .item-duplicate-group { display:grid; gap:6px; }
    .item-duplicate-group-links { gap:5px; }
    .item-chip-duplicate-source {
      text-decoration:none;
      color:#d7dfeb;
      border-color:rgba(255,255,255,0.1);
      background:rgba(255,255,255,0.04);
    }
    .item-chip-duplicate-source strong { color:#ffd180; }
    .item-chip-duplicate-source:hover {
      border-color:rgba(255,209,128,0.32);
      background:rgba(255,209,128,0.08);
    }
    .item-price-main .item-price-cluster,
    .item-price-cluster,
    .item-meta-cluster { display:flex; flex-wrap:wrap; align-items:center; gap:4px; min-width:0; }
    .item-price-main .item-price-cluster,
    .item-price-cluster { align-items: baseline; }
    .item-price-main .item-price-cluster { gap: 8px; }
    .item-price-main .row-val.jpy { font-size: 16px; font-weight: 750; letter-spacing: -.015em; }
    .item-price-main .row-val.eur { font-size: 14px; font-weight: 700; }
    .item-price-subline {
      display: grid;
      gap: 3px;
      padding-top: 6px;
      border-top: 1px solid rgba(255,255,255,0.06);
    }
    .item-price-subline-label {
      font-size: 10px;
      text-transform: uppercase;
      letter-spacing: .3px;
      color: var(--muted);
    }
    .item-price-subline-value .item-price-cluster,
    .item-price-subline .item-price-cluster { gap: 5px; }
    .item-price-subline-value { min-width: 0; }
    .item-price-subline .row-val.jpy,
    .item-price-subline .row-val.eur { font-size: 12px; font-weight: 600; color: var(--muted); font-style: normal; }
    .item-price-subline-reference { opacity: .92; }
    .item-price-subline-tax { gap: 5px; padding-top: 5px; }
    .item-vat-line {
      display: flex;
      align-items: center;
      justify-content: space-between;
      gap: 8px;
      min-width: 0;
      flex-wrap: wrap;
    }
    .item-vat-pill {
      display: inline-flex;
      align-items: center;
      min-height: 20px;
      padding: 2px 8px;
      border-radius: 999px;
      border: 1px solid rgba(255,184,107,0.28);
      background: rgba(255,184,107,0.1);
      color: #ffcc80;
      font-size: 10px;
      font-weight: 700;
      letter-spacing: .2px;
      line-height: 1.2;
    }
    .item-vat-label {
      font-size: 10px;
      text-transform: uppercase;
      letter-spacing: .3px;
      color: var(--muted);
      flex-shrink: 0;
    }
    .item-vat-value,
    .item-vat-value .item-price-cluster {
      min-width: 0;
      justify-content: flex-end;
      row-gap: 2px;
    }
    .item-vat-value .row-val.jpy,
    .item-vat-value .row-val.eur {
      font-size: 11px;
      font-weight: 600;
      color: var(--muted);
      font-style: normal;
    }
    .favorite-price-panel {
      gap: 8px;
      align-items: start;
    }
    .favorite-price-panel.has-change {
      grid-template-columns: minmax(0, 1fr) minmax(124px, 148px);
    }
    .favorite-price-column {
      min-width: 0;
      display: grid;
      gap: 6px;
      align-content: start;
    }
    .favorite-price-column .item-price-primary { gap: 3px; }
    .favorite-price-column .item-price-subline { padding-top: 5px; }
    .favorite-price-summary {
      display: grid;
      gap: 6px;
      padding: 7px 8px;
      border-radius: 8px;
      border: 1px solid rgba(59,158,221,0.12);
      background: rgba(59,158,221,0.08);
      min-width: 0;
      align-self: stretch;
      align-content: start;
    }
    .favorite-price-summary-main {
      display: grid;
      grid-template-columns: minmax(0, 1fr) auto;
      align-items: start;
      gap: 8px;
      min-width: 0;
    }
    .favorite-price-summary.is-down {
      border-color: rgba(102,187,106,0.14);
      background: rgba(102,187,106,0.08);
    }
    .favorite-price-summary.is-up {
      border-color: rgba(239,83,80,0.14);
      background: rgba(239,83,80,0.08);
    }
    .favorite-price-summary-head {
      display: inline-flex;
      align-items: center;
      gap: 5px;
      min-width: 0;
      max-width: 100%;
      overflow-wrap: break-word;
      word-break: normal;
    }
    .favorite-price-summary-badge {
      display: inline-flex;
      align-items: center;
      justify-content: center;
      padding: 2px 7px;
      border-radius: 999px;
      font-size: 10px;
      font-weight: 700;
      line-height: 1.2;
      background: rgba(255,255,255,0.07);
      color: var(--text);
      border: 1px solid rgba(255,255,255,0.08);
      max-width: 100%;
      white-space: normal;
      overflow-wrap: anywhere;
    }
    .favorite-price-summary-label {
      font-size: 10px;
      text-transform: uppercase;
      letter-spacing: .3px;
      color: var(--muted);
      overflow-wrap: break-word;
      word-break: normal;
    }
    .favorite-price-summary-date {
      font-size: 10px;
      color: var(--muted);
      opacity: .9;
      white-space: nowrap;
    }
    .favorite-price-summary-amount {
      display: block;
      font-size: 13px;
      line-height: 1.2;
      color: var(--accent);
      justify-self: end;
      text-align: right;
      white-space: nowrap;
    }
    .favorite-price-summary-sub {
      display: flex;
      flex-wrap: wrap;
      align-items: center;
      gap: 6px;
      min-width: 0;
    }
    .favorite-price-summary.is-up i,
    .favorite-price-summary.is-up .favorite-price-summary-amount,
    .favorite-price-summary.is-up .favorite-price-summary-badge { color: #ef5350; }
    .favorite-price-summary.is-down i,
    .favorite-price-summary.is-down .favorite-price-summary-amount,
    .favorite-price-summary.is-down .favorite-price-summary-badge { color: #66bb6a; }
    .favorite-price-summary-meta {
      font-size: 11px;
      color: var(--text);
      opacity: .88;
      min-width: 0;
      flex: 1 1 140px;
      overflow-wrap: anywhere;
    }
    .favorite-price-summary-note {
      grid-column: 1 / -1;
      font-size: 10px;
      color: var(--muted);
      text-transform: uppercase;
      letter-spacing: .3px;
    }
    .item-meta-cluster { align-content: flex-start; }
    .item-status-badge,
    .favorite-status-badge { display:inline-flex; align-items:center; align-self:center; gap:4px; padding:4px 8px; border-radius:999px; font-size:11px; font-weight:700; line-height:1.2; border:1px solid transparent; }
    .item-status-badge.is-active,
    .favorite-status-badge.is-active { color:#4caf50; background:#4caf5022; border-color:#4caf5040; }
    .item-status-badge.is-changed,
    .favorite-status-badge.is-changed { color:#ffb74d; background:#ff980022; border-color:#ff980040; }
    .item-status-badge.is-checking,
    .favorite-status-badge.is-checking { color:#90caf9; background:#1e88e522; border-color:#42a5f540; }
    .item-status-badge.is-sold,
    .favorite-status-badge.is-sold { color:#ef9a9a; background:#e5393522; border-color:#e5393540; }
    .item-status-badge.is-ended { color:#ffd180; background:#ffb30022; border-color:#ffb30040; }
    .item-status-badge.is-blocked-auction { color:#ff8a80; background:#e5393522; border-color:#e5393544; }
    .favorite-insights { display:grid; gap:7px; padding:7px 8px; border:1px solid rgba(255,255,255,0.06); border-radius:10px; background:rgba(255,255,255,0.025); }
    .favorite-metric-grid { display:grid; grid-template-columns:repeat(2, minmax(0, 1fr)); gap:8px; }
    .favorite-metric-grid-summary { grid-template-columns:repeat(auto-fit, minmax(108px, 1fr)); }
    .favorite-metric { display:grid; gap:3px; padding:7px 8px; border-radius:8px; background:var(--surface2); min-width:0; border:1px solid rgba(255,255,255,0.05); align-content:start; }
    .favorite-metric span { font-size:10px; text-transform:uppercase; letter-spacing:.3px; color:var(--muted); }
    .favorite-metric strong { font-size:14px; color:var(--accent); line-height:1.2; }
    .favorite-metric small { font-size:11px; color:var(--muted); line-height:1.2; }
    .favorite-metric-change { background:rgba(59,158,221,0.08); border-color:rgba(59,158,221,0.12); }
    .favorite-metric-change.is-down { background:rgba(102,187,106,0.08); border-color:rgba(102,187,106,0.14); }
    .favorite-metric-change.is-up { background:rgba(239,83,80,0.08); border-color:rgba(239,83,80,0.14); }
    .favorite-metric-change.is-down strong { color:#66bb6a; }
    .favorite-metric-change.is-up strong { color:#ef5350; }
    .favorite-metric .favorite-price-change.is-up { color:#ef5350; }
    .favorite-metric .favorite-price-change.is-down { color:#66bb6a; }
    .v2-opportunity-strip {
      display:grid;
      grid-template-columns:auto minmax(0, 1fr) auto;
      align-items:center;
      gap:8px;
      min-height:52px;
      padding:8px;
      border-radius:8px;
      border:1px solid rgba(255,255,255,0.08);
      background:rgba(255,255,255,0.035);
    }
    .v2-opportunity-score {
      width:42px;
      height:42px;
      border-radius:8px;
      display:grid;
      place-items:center;
      align-content:center;
      border:1px solid rgba(255,255,255,0.12);
      background:rgba(255,255,255,0.06);
      line-height:1;
    }
    .v2-opportunity-score span { font-size:16px; font-weight:800; }
    .v2-opportunity-score small { font-size:9px; color:var(--muted); }
    .v2-opportunity-score.is-large {
      width:58px;
      height:52px;
    }
    .v2-opportunity-score.is-large span { font-size:21px; }
    .v2-opportunity-copy { min-width:0; display:grid; gap:3px; }
    .v2-opportunity-title {
      display:flex;
      align-items:center;
      gap:4px;
      min-width:0;
      font-size:12px;
      font-weight:800;
      color:var(--text);
    }
    .v2-opportunity-meta {
      font-size:11px;
      line-height:1.25;
      color:var(--muted);
      overflow:hidden;
      display:-webkit-box;
      -webkit-line-clamp:2;
      -webkit-box-orient:vertical;
    }
    .v2-defect-notice {
      display:flex;
      flex-wrap:wrap;
      align-items:center;
      min-width:0;
      width:100%;
      box-sizing:border-box;
      gap:6px;
      margin-top:4px;
      padding:7px 8px;
      border-radius:10px;
      border:1px solid rgba(255,184,77,0.45);
      background:rgba(255,152,0,0.16);
      color:#ffd180;
      box-shadow:0 0 0 1px rgba(255,193,7,0.08) inset;
    }
    .v2-defect-notice.is-compact {
      padding:5px 7px;
      gap:5px;
    }
    .v2-defect-badge {
      display:inline-flex;
      align-items:center;
      gap:4px;
      min-width:0;
      max-width:100%;
      box-sizing:border-box;
      color:#2b1700;
      background:#ffb74d;
      border:1px solid rgba(255,224,130,0.75);
      border-radius:999px;
      padding:3px 7px;
      font-size:10px;
      line-height:1.2;
      font-weight:900;
      text-transform:uppercase;
      letter-spacing:.035em;
      white-space:normal;
      overflow-wrap:anywhere;
    }
    .v2-defect-primary {
      min-width:0;
      color:#ffe0b2;
      font-size:11px;
      line-height:1.25;
      font-weight:800;
      overflow:hidden;
      display:-webkit-box;
      -webkit-line-clamp:2;
      -webkit-box-orient:vertical;
    }
    .v2-opportunity-target {
      display:grid;
      justify-items:end;
      gap:2px;
      min-width:54px;
    }
    .v2-opportunity-target span {
      font-size:9px;
      text-transform:uppercase;
      letter-spacing:.3px;
      color:var(--muted);
      white-space:nowrap;
    }
    .v2-opportunity-target .v2-opportunity-cost {
      color:#ffa726;
    }
    .v2-opportunity-target strong {
      font-size:13px;
      color:var(--text);
      white-space:nowrap;
    }
    .v2-opportunity-strong { border-color:rgba(102,187,106,0.28); background:rgba(102,187,106,0.08); }
    .v2-opportunity-strong .v2-opportunity-score span,
    .v2-opportunity-strong .v2-opportunity-target strong { color:#66bb6a; }
    .v2-opportunity-good { border-color:rgba(59,158,221,0.28); background:rgba(59,158,221,0.08); }
    .v2-opportunity-good .v2-opportunity-score span,
    .v2-opportunity-good .v2-opportunity-target strong { color:#6bb7e8; }
    .v2-opportunity-watch { border-color:rgba(255,184,107,0.28); background:rgba(255,184,107,0.08); }
    .v2-opportunity-watch .v2-opportunity-score span,
    .v2-opportunity-watch .v2-opportunity-target strong { color:#ffb86b; }
    .v2-opportunity-weak { border-color:rgba(239,83,80,0.2); background:rgba(239,83,80,0.06); }
    .v2-opportunity-weak .v2-opportunity-score span,
    .v2-opportunity-weak .v2-opportunity-target strong { color:#ef9a9a; }
    .v2-opportunity-panel {
      display:grid;
      gap:10px;
    }
    .v2-opportunity-panel-head {
      display:flex;
      justify-content:space-between;
      align-items:center;
      gap:12px;
    }
    .v2-opportunity-panel-sub {
      margin-top:3px;
      font-size:12px;
      color:var(--muted);
    }
    .v2-opportunity-inline-note {
      margin-top:-2px;
      font-size:11px;
      color:var(--muted);
      line-height:1.35;
    }
    .v2-defect-notice {
      display:grid;
      gap:5px;
      min-width:0;
      width:100%;
      box-sizing:border-box;
      padding:9px 10px;
      border:1px solid rgba(255,183,77,0.55);
      border-left:3px solid #ffb74d;
      border-radius:8px;
      background:rgba(255,152,0,0.13);
    }
    .v2-defect-notice.is-compact {
      display:flex;
      align-items:center;
      flex-wrap:wrap;
      gap:5px 7px;
      padding:4px 6px;
      border-left-width:2px;
      border-radius:6px;
    }
    .v2-defect-notice.is-compact .v2-defect-badge {
      flex:0 0 auto;
      white-space:nowrap;
      letter-spacing:0;
      font-size:10px;
    }
    .v2-defect-badge {
      display:inline-flex;
      align-items:center;
      gap:4px;
      min-width:0;
      max-width:100%;
      width:fit-content;
      box-sizing:border-box;
      color:#ffd180;
      font-size:11px;
      font-weight:800;
      white-space:normal;
      overflow-wrap:anywhere;
    }
    .v2-defect-primary {
      min-width:0;
      color:#ffe0b2;
      font-size:11px;
      line-height:1.35;
    }
    .v2-defect-notice.is-compact .v2-defect-badge,
    .v2-defect-notice.is-compact .v2-defect-primary { font-size:10px; }
    .v2-opportunity-metrics {
      display:grid;
      grid-template-columns:repeat(3, minmax(0, 1fr));
      gap:10px;
      align-items:stretch;
    }
    .v2-opportunity-panel .favorite-metric {
      display:grid;
      grid-template-rows:auto auto 1fr;
      align-content:start;
      height:100%;
      padding:10px;
      border-radius:10px;
      background:rgba(255,255,255,0.05);
      border-color:rgba(255,255,255,0.08);
    }
    .v2-opportunity-panel .favorite-metric strong {
      font-size:18px;
      line-height:1.15;
    }
    .v2-opportunity-panel .favorite-metric small {
      font-size:12px;
    }
    .v2-scoring-summary {
      cursor:pointer;
      font-size:11px;
      color:var(--muted);
      margin-bottom:8px;
      list-style:none;
    }
    .v2-scoring-summary::-webkit-details-marker {
      display:none;
    }
    .v2-scoring-body {
      display:grid;
      gap:10px;
      font-size:11px;
      color:var(--muted);
      line-height:1.6;
      padding:10px;
      border-radius:10px;
      background:rgba(255,255,255,0.03);
      border:1px solid rgba(255,255,255,0.05);
    }
    .v2-score-breakdown-grid {
      display:grid;
      grid-template-columns:repeat(4, minmax(0, 1fr));
      gap:8px;
      align-items:stretch;
    }
    .v2-score-breakdown-card {
      gap:2px;
    }
    .v2-score-cap-note {
      padding:8px 10px;
      border-radius:8px;
      background:rgba(255,184,107,0.08);
      border:1px solid rgba(255,184,107,0.16);
      color:#ffcc80;
    }
    .v2-score-explain-group {
      display:grid;
      gap:6px;
    }
    .v2-score-explain-title {
      color:var(--text);
      font-size:11px;
      font-weight:700;
    }
    .v2-score-empty {
      color:var(--muted);
    }
    .v2-score-scale-note {
      color:var(--muted);
    }
    .v2-signal-row {
      display:flex;
      flex-wrap:wrap;
      gap:6px;
    }
    .v2-signal-chip {
      display:inline-flex;
      align-items:flex-start;
      justify-content:flex-start;
      min-height:24px;
      max-width:100%;
      padding:4px 8px;
      border-radius:999px;
      border:1px solid rgba(102,187,106,0.22);
      background:rgba(102,187,106,0.08);
      color:#a5d6a7;
      font-size:11px;
      font-weight:700;
      line-height:1.2;
      white-space:normal;
      overflow-wrap:anywhere;
      word-break:break-word;
      text-align:left;
    }
    .v2-signal-chip.is-warning {
      border-color:rgba(255,184,107,0.26);
      background:rgba(255,184,107,0.08);
      color:#ffcc80;
    }
    .favorite-inline-row { justify-content:space-between; align-items:flex-start; }
    .favorite-delta-chip {
      display:grid; grid-template-columns:auto minmax(0, 1fr); align-items:start; gap:8px;
      padding:7px 8px; border-radius:8px;
      background:rgba(59,158,221,0.08); color:var(--text);
      font-size:11px; line-height:1.3;
      border:1px solid rgba(59,158,221,0.12);
    }
    .favorite-delta-icon {
      width: 20px;
      height: 20px;
      display: inline-flex;
      align-items: center;
      justify-content: center;
      border-radius: 999px;
      background: rgba(255,255,255,0.08);
    }
    .favorite-delta-copy { display:grid; gap:2px; min-width:0; }
    .favorite-delta-label { font-size:10px; text-transform:uppercase; letter-spacing:.3px; color:var(--muted); }
    .favorite-delta-chip strong { color:var(--accent); font-size:12px; }
    .favorite-delta-chip.is-up i,
    .favorite-delta-chip.is-up strong { color:#ef5350; }
    .favorite-delta-chip.is-down i,
    .favorite-delta-chip.is-down strong { color:#66bb6a; }
    .favorite-delta-chip.is-down { background: rgba(102,187,106,0.08); border-color: rgba(102,187,106,0.14); }
    .favorite-delta-chip.is-up { background: rgba(239,83,80,0.08); border-color: rgba(239,83,80,0.14); }
    .favorite-delta-chip.is-summary { background: rgba(102,187,106,0.06); }
    .favorite-history-block {
      display: grid;
      gap: 5px;
      padding: 8px;
      border-radius: 8px;
      background: rgba(255,255,255,0.02);
      border: 1px solid rgba(255,255,255,0.06);
    }
    .favorite-history-head {
      display:flex;
      align-items:baseline;
      justify-content:space-between;
      gap:8px;
      flex-wrap:wrap;
    }
    .favorite-history-label {
      font-size: 10px;
      text-transform: uppercase;
      letter-spacing: .3px;
      color: var(--muted);
    }
    .favorite-history-caption {
      font-size: 10px;
      color: var(--muted);
    }
    .favorite-history-count {
      display: inline-flex;
      align-items: center;
      justify-content: center;
      min-width: 24px;
      padding: 3px 7px;
      border-radius: 999px;
      font-size: 10px;
      font-weight: 700;
      color: #66bb6a;
      background: rgba(102,187,106,0.12);
      border: 1px solid rgba(102,187,106,0.2);
    }
    .favorite-history-list,
    .favorite-history-stack {
      display: grid;
      gap: 4px;
      min-width: 0;
    }
    .favorite-history-list-compact {
      grid-template-columns: repeat(auto-fit, minmax(120px, 1fr));
      gap: 6px;
    }
    .favorite-history-line {
      display: block;
      font-size: 11px;
      line-height: 1.35;
      color: #d7dfeb;
      word-break: break-word;
      padding: 6px 8px 6px 18px;
      position: relative;
      border-radius: 7px;
      background: rgba(255,255,255,0.03);
      border: 1px solid rgba(255,255,255,0.04);
    }
    .favorite-history-line::before {
      content: '';
      position: absolute;
      left: 8px;
      top: 50%;
      transform: translateY(-50%);
      width: 4px;
      height: 4px;
      border-radius: 999px;
      background: rgba(102,187,106,0.9);
    }
    .favorite-history-row { align-items: flex-start; }
    .favorite-history-row .row-label { padding-top: 1px; }
    .item-media-actions { display:grid; grid-template-columns:repeat(3, minmax(0, 1fr)); gap:6px; }
    .item-media-actions-1 { grid-template-columns: minmax(0, 1fr); }
    .item-media-actions-2 { grid-template-columns: repeat(2, minmax(0, 1fr)); }
    .item-nav-actions { display:grid; grid-template-columns:repeat(2, minmax(0, 1fr)); gap:6px; }
    .btn-zenmarket { background: var(--accent); color: #fff; border: none; padding: 7px 10px;
      border-radius: 7px; font-size: 12px; font-weight: 700; cursor: pointer; text-decoration: none;
      display: flex; align-items: center; gap: 4px; flex: 1; justify-content: center; }
    .btn-zenmarket:hover { opacity: .88; }
    .btn-zenmarket-disabled {
      background: #e5393522;
      color: #ff8a80;
      border: 1px solid #e5393544;
      cursor: not-allowed;
      opacity: 1;
    }
    .btn-view { background: var(--surface2); color: var(--text); border: 1px solid var(--border);
      padding: 7px 10px; border-radius: 7px; font-size: 13px; cursor: pointer; text-decoration: none;
      display: flex; align-items: center; justify-content: center; gap: 4px; }
    .item-action-main { min-width: 0; min-height: 34px; padding: 7px 6px; font-size: 11px; }
    .item-action-icon { width: 100%; min-width: 0; height: 34px; min-height: 34px; padding: 0; border-radius: 10px; cursor: pointer; display:inline-flex; align-items:center; justify-content:center; }
    .item-action-tile { width:100%; min-width:0; }
    .btn-favorite.item-action-icon { background: var(--surface2); border: 1px solid var(--border); color: var(--text); }
    .btn-fav-remove.item-action-icon { border: 1px solid #e5222244; background: #e5222222; color: #ff6d7a; }
    .item-time { font-size: 10px; color: var(--muted); margin-top: 5px; }

    /* ── Admin panel ── */
    .panel { display: none; position: fixed; inset: 0; z-index: 200; background: rgba(0,0,0,.85); overflow-y: auto; }
    .panel.open { display: flex; align-items: flex-end; }
    .panel-content { background: var(--surface); border-radius: 20px 20px 0 0; padding: 20px; width: 100%; max-height: 90vh; overflow-y: auto; }
    .panel-header { display: flex; align-items: center; justify-content: space-between; margin-bottom: 20px; }
    .panel-title { font-size: 16px; font-weight: 700; }
    .panel-close { background: var(--surface2); border: none; color: var(--text); width: 32px; height: 32px; border-radius: 50%; cursor: pointer; font-size: 18px; }
    body.admin-route { display: flex; align-items: stretch; }
    body.admin-route #app { display: flex; min-height: 100vh; width: 260px; flex: 0 0 260px; }
    body.admin-route #sidebar { width: 260px; min-height: 100vh; }
    body.admin-route #main,
    body.admin-route #toolbar,
    body.admin-route .stats-grid,
    body.admin-route .tabs,
    body.admin-route .filter-section { display: none !important; }
    body.admin-route .sidebar-logo { margin-bottom: 0; }
    body.admin-route .panel { display: block; position: static; inset: auto; background: transparent; overflow: visible; padding: 20px 12px 28px; flex: 1; min-width: 0; }
    body.admin-route .panel-content { max-width: 1120px; margin: 0 auto; max-height: none; border-radius: 20px; border: 1px solid var(--border); }
    .alert-create-panel { margin-bottom: 18px; padding: 14px; border: 1px solid var(--border); border-radius: 14px; background: rgba(255,255,255,0.02); }
    .alerts-category-section { margin-bottom: 14px; }
    .alerts-category-title { display:flex; align-items:center; gap:8px; margin: 0 0 8px; font-size: 13px; font-weight: 700; color: var(--text); }
    .alerts-category-title span { color: var(--muted); font-weight: 600; font-size: 12px; }
    .alert-row { background: var(--surface2); border-radius: 8px; padding: 12px; margin-bottom: 8px; display: flex; justify-content: space-between; align-items: flex-start; gap: 10px; flex-wrap: wrap; }
    .alert-row-flash { animation: alertRowFlash 1.6s ease; }
    .alert-row-main { flex: 1; min-width: 0; }
    .alert-name-row { display:flex; align-items:center; gap:8px; flex-wrap:wrap; margin-bottom: 4px; }
    .alert-category-badge { display:inline-flex; align-items:center; padding: 3px 8px; border-radius: 999px; background: rgba(71, 85, 105, 0.16); color: var(--muted); font-size: 11px; font-weight: 700; letter-spacing: 0.02em; text-transform: uppercase; }
    .alert-row-actions { display:flex; gap:8px; align-items:center; }
    .alert-row-actions .btn-secondary { width: auto; margin-top: 0; padding: 8px 12px; }
    .alert-health-link { text-decoration: none; }
    .keyword-tag-editor { display: flex; flex-wrap: wrap; align-items: center; gap: 6px; min-height: 42px; padding: 6px 8px; border: 1px solid var(--border); border-radius: 10px; background: var(--surface2); }
    .keyword-tag-editor:focus-within { border-color: var(--accent); box-shadow: 0 0 0 2px rgba(59, 158, 221, 0.12); }
    .keyword-tag-list { display: contents; }
    .keyword-tag { display: inline-flex; align-items: center; gap: 5px; max-width: 100%; padding: 5px 8px; border-radius: 999px; background: rgba(59, 158, 221, 0.16); color: var(--text); font-size: 12px; line-height: 1.2; }
    .keyword-tag > span { overflow-wrap: anywhere; }
    .keyword-tag button { appearance: none; border: 0; padding: 0; background: transparent; color: var(--muted); cursor: pointer; font-size: 16px; line-height: 1; }
    .keyword-tag button:hover { color: var(--text); }
    .keyword-tag-input { flex: 1 1 150px; min-width: 120px; border: 0; padding: 5px 2px; background: transparent; box-shadow: none; }
    .keyword-tag-input:focus { border: 0; outline: 0; box-shadow: none; }
    .alert-name { font-size: 13px; font-weight: 600; }
    .alert-ids { font-size: 11px; color: var(--muted); margin-top: 2px; }
    @keyframes alertRowFlash {
      0% { box-shadow: 0 0 0 0 rgba(59, 158, 221, 0.42); border-color: rgba(59, 158, 221, 0.5); }
      35% { box-shadow: 0 0 0 8px rgba(59, 158, 221, 0.12); border-color: rgba(112, 193, 246, 0.58); }
      100% { box-shadow: 0 0 0 0 rgba(59, 158, 221, 0); border-color: transparent; }
    }
    .btn-del { background: #e5222222; color: #e53935; border: 1px solid #e5222244; padding: 8px 10px; border-radius: 6px; font-size: 11px; cursor: pointer; }
    .form-row { margin-bottom: 12px; }
    .form-label { font-size: 12px; color: var(--muted); margin-bottom: 4px; display: block; }
    .form-input { width: 100%; background: var(--surface2); border: 1px solid var(--border); color: var(--text); padding: 9px 12px; border-radius: 8px; font-size: 13px; }
    .form-input:focus { outline: none; border-color: var(--accent); }
    .form-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 10px; }
    .alert-size-picker { display:grid; gap:10px; }
    .alert-size-picker-grid { display:flex; flex-wrap:wrap; gap:8px; }
    .alert-size-chip { position:relative; display:inline-flex; }
    .alert-size-chip input { position:absolute; inset:0; opacity:0; cursor:pointer; }
    .alert-size-chip span {
      display:inline-flex; align-items:center; justify-content:center;
      min-height:34px; padding:7px 10px; border-radius:999px;
      border:1px solid var(--border); background:var(--surface);
      color:var(--text); font-size:12px; font-weight:600; cursor:pointer;
      transition:background .15s, border-color .15s, color .15s, transform .15s;
    }
    .alert-size-chip input:checked + span {
      background:rgba(59,158,221,0.16); border-color:rgba(59,158,221,0.55); color:var(--accent);
    }
    .alert-size-chip input:focus-visible + span { outline:2px solid rgba(59,158,221,0.45); outline-offset:2px; }
    .alert-size-advanced-input { margin-top: 2px; }
    .btn-primary { width: 100%; background: var(--accent); color: #fff; border: none; padding: 12px; border-radius: 10px; font-size: 14px; font-weight: 700; cursor: pointer; margin-top: 4px; }
    .btn-secondary { background: var(--surface2); color: var(--text); border: 1px solid var(--border); padding: 10px 16px; border-radius: 10px; font-size: 13px; font-weight: 600; cursor: pointer; margin-top: 8px; width: 100%; }
    .admin-route-switcher {
      display: grid;
      grid-template-columns: repeat(2, minmax(0, 1fr));
      gap: 8px;
      align-items: stretch;
      margin-bottom: 14px;
    }
    .admin-route-form {
      display: flex;
      margin: 0;
    }
    .admin-route-link {
      width: 100%;
      margin-top: 0;
      min-height: 42px;
      display: inline-flex;
      align-items: center;
      justify-content: center;
      gap: 8px;
      text-align: center;
      text-decoration: none;
      -webkit-tap-highlight-color: transparent;
      touch-action: manipulation;
      appearance: none;
      -webkit-appearance: none;
      transition: transform 0.16s ease, box-shadow 0.16s ease, border-color 0.16s ease, background 0.16s ease;
    }
    .admin-route-link:hover {
      transform: translateY(-1px);
      box-shadow: 0 10px 24px rgba(0, 0, 0, 0.18);
    }
    .admin-route-link-active {
      background: linear-gradient(135deg, rgba(59, 158, 221, 0.26), rgba(27, 120, 173, 0.52));
      border-color: rgba(112, 193, 246, 0.5);
      color: #f3fbff;
      box-shadow: 0 10px 24px rgba(19, 78, 116, 0.22);
      pointer-events: none;
      cursor: default;
    }
    @media (max-width: 767px) {
      .admin-route-switcher {
        gap: 10px;
        margin-bottom: 16px;
      }
      .admin-route-link {
        min-height: 48px;
        padding: 12px 14px;
        border-radius: 12px;
        font-size: 14px;
        font-weight: 700;
        letter-spacing: 0.01em;
      }
      .admin-route-link:not(.admin-route-link-active) {
        background: linear-gradient(135deg, rgba(255,255,255,0.06), rgba(255,255,255,0.03));
        border-color: rgba(255,255,255,0.12);
      }
      .admin-route-link .ph {
        font-size: 15px;
      }
    }
    .alert-inline-editor { width: 100%; }
    .form-help { margin-top: 4px; font-size: 11px; color: var(--muted); line-height: 1.4; }
    .alert-settings-form { display: grid; gap: 14px; margin-bottom: 16px; }
    .alert-settings-cards { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 12px; }
    .alert-settings-card { padding: 14px; border-radius: 14px; border: 1px solid var(--border); background: rgba(255,255,255,0.02); display: grid; gap: 10px; }
    .alert-settings-card-title { font-size: 13px; font-weight: 700; color: var(--text); }
    .alert-settings-inline-checks { display: flex; gap: 12px; flex-wrap: wrap; padding-top: 8px; font-size: 12px; color: var(--text); }
    .alert-settings-inline-checks label { display: inline-flex; align-items: center; gap: 6px; }
    .form-grid.compact { grid-template-columns: 1fr 1fr; gap: 8px; }
    .alert-rule-category-grid { display: grid; gap: 8px; }
    .alert-rule-category-head { display:grid; grid-template-columns: minmax(150px, 1.5fr) 90px minmax(120px, 1fr); gap:10px; align-items:center; font-size:11px; font-weight:700; color:var(--muted); text-transform:uppercase; letter-spacing:.04em; padding:0 2px; }
    .alert-rule-category-row { display: grid; grid-template-columns: minmax(150px, 1.5fr) 90px minmax(120px, 1fr); gap: 10px; align-items: center; }
    .alert-rule-category-meta { display: grid; gap: 2px; font-size: 12px; color: var(--muted); }
    .alert-rule-category-meta strong { color: var(--text); font-size: 12px; }
    .alert-rule-category-toggle { display:inline-flex; align-items:center; gap:8px; font-size:12px; color:var(--text); }
    .alert-rule-category-toggle input { width:16px; height:16px; accent-color:var(--accent); }
    .alert-diagnostic-card { background: rgba(255,255,255,0.03); border: 1px solid var(--border); border-radius: 12px; padding: 12px; display: grid; gap: 10px; }
    .alert-diagnostic-card.is-high { border-left: 4px solid #4caf50; }
    .alert-diagnostic-card.is-medium { border-left: 4px solid #ff9800; }
    .alert-diagnostic-card.is-low { border-left: 4px solid #e53935; }
    .alert-diagnostic-head { display:flex; justify-content:space-between; gap:10px; align-items:flex-start; }
    .alert-diagnostic-title { font-size: 13px; font-weight: 700; }
    .alert-diagnostic-summary { font-size: 12px; color: var(--muted); margin-top: 3px; }
    .alert-diagnostic-badge { display:inline-flex; align-items:center; justify-content:center; padding:4px 8px; border-radius:999px; font-size:11px; font-weight:700; }
    .alert-diagnostic-badge.is-high { background:#4caf5033; color:#4caf50; }
    .alert-diagnostic-badge.is-medium { background:#ff980033; color:#ff9800; }
    .alert-diagnostic-badge.is-low { background:#e5393533; color:#e53935; }
    .alert-diagnostic-grid { display:grid; grid-template-columns:1fr 1fr; gap:10px; }
    .alert-diagnostic-source { background: var(--surface2); border-radius: 10px; padding: 10px; font-size: 12px; display:grid; gap:4px; }
    .alert-diagnostic-source small { color: var(--muted); line-height: 1.35; }
    .alert-diagnostic-warnings { margin: 0; padding-left: 18px; display:grid; gap:4px; font-size:12px; color:var(--muted); }
    .alert-diagnostic-alt { font-size: 11px; color: var(--muted); }
    .alert-diagnostic-actions { display:grid; gap:8px; justify-items:end; }
    .alert-diagnostic-actions .btn-primary { min-width: 168px; }
    @media (max-width: 767px) {
      .panel.open { align-items: stretch; }
      .panel-content { max-height: 100vh; border-radius: 0; padding: 14px 12px 18px; }
      .panel-header { margin-bottom: 14px; }
      body.admin-route { display: block; }
      body.admin-route #app { width: 100%; flex: none; min-height: auto; }
      body.admin-route #sidebar { width: 100%; min-height: auto; height: auto; }
      body.admin-route #main, body.admin-route #toolbar, body.admin-route .stats-grid, body.admin-route .tabs, body.admin-route .filter-section { display: none !important; }
      body.admin-route .panel { padding: 0; }
      body.admin-route .panel-content { max-width: none; border-radius: 0; border: none; }
      .form-grid { grid-template-columns: 1fr; gap: 0; }
      .alert-row { padding: 10px; }
      .alert-row-actions { width: 100%; justify-content: flex-end; }
      .alert-row-actions .btn-secondary, .btn-del { padding: 8px 10px; }
      .alert-inline-editor { margin-top: 6px !important; padding: 12px !important; }
      .alert-settings-cards { grid-template-columns: 1fr; }
      .alert-rule-category-head { display:none; }
      .alert-rule-category-row { grid-template-columns: 1fr; }
      .alert-diagnostic-head { flex-direction: column; align-items: stretch; }
      .alert-diagnostic-actions { justify-items: stretch; }
      .alert-diagnostic-grid { grid-template-columns: 1fr; }
      .alert-inline-editor form > div[style*='display:flex;gap:8px;'] { flex-direction: column; }
      .alert-inline-editor form > div[style*='display:flex;gap:8px;'] > * { width: 100%; }
      .alerts-filter-row, .admin-sync-row { flex-direction: column; align-items: stretch !important; }
      .alerts-filter-row .form-input, .admin-sync-row .btn-secondary { max-width: none !important; width: 100%; }
    }

    /* ── Logs view ── */
    .runs-container { display: grid; gap: 10px; }

    /* ── Favorites view (same as feed) ── */
    .favorites-container { padding: 12px; width: 100%; max-width: 680px; margin: 0 auto; }
    .favorites-toolbar { display:flex; flex-direction:column; gap:8px; padding:6px 12px 2px; }
    .favorites-toolbar-top { display:flex; align-items:center; justify-content:space-between; gap:10px; font-size:11px; color:var(--muted); flex-wrap:wrap; }
    .favorites-toolbar-actions { display:flex; flex-wrap:wrap; gap:6px; }
    .favorites-toolbar-actions button { width:auto; margin:0; padding:7px 10px; border-radius:8px; font-size:12px; }
    .favorites-toolbar-actions button:disabled { opacity: 0.45; cursor: not-allowed; }
    .favorites-sort-control { display:flex; align-items:center; gap:6px; margin-left:auto; min-width:0; }
    .favorites-sort-control span { white-space:nowrap; }
    .favorites-sort-select { width:auto; min-width:190px; margin-bottom:0; font-size:12px; padding:8px 30px 8px 10px; }
    .favorites-selection-chip { color: var(--accent); font-weight: 700; }
    .item-card.select-mode { border-color: rgba(59,158,221,0.4); }
    .item-card.is-selected { border-color: var(--accent); box-shadow: 0 0 0 1px rgba(59,158,221,0.25) inset; }
    .favorite-select-row { display:flex; justify-content:flex-end; margin-bottom:8px; pointer-events:none; }
    .favorite-select-toggle { display:inline-flex; align-items:center; justify-content:center; gap:0; font-size:12px; color:var(--text); pointer-events:auto; }
    .favorite-select-toggle input { width:18px; height:18px; accent-color: var(--accent); pointer-events:auto; }
    .favorite-card { border-radius: 14px; }
    .favorite-card .item-body { gap: 7px; }
    .favorite-card .item-title { line-height: 1.45; }
    .favorite-card .item-details { gap: 5px; }
    .favorite-card .item-summary-grid { grid-template-columns: 1fr; gap: 5px; }
    .favorite-card .item-price-panel,
    .favorite-card .item-meta-panel { padding: 7px 8px; gap: 5px; }
    .favorite-card .favorite-price-panel.has-change { grid-template-columns: minmax(0, 1fr); }
    .favorite-card .favorite-price-summary-main { grid-template-columns: minmax(0, 1fr); }
    .favorite-card .favorite-price-summary-amount {
      justify-self: start;
      text-align: left;
    }
    .favorite-card .item-media-actions-1 {
      grid-template-columns: 40px;
      justify-content: end;
    }
    .favorite-card .btn-fav-remove {
      width: 40px;
      min-width: 40px;
      justify-self: end;
    }
    .favorite-card .btn-zenmarket,
    .favorite-card .btn-view { min-height: 36px; }
    .favorite-card.select-mode .item-nav-actions { display:grid; }
    .favorite-card .btn-fav-remove:hover { background:#e5222233; color:#ff9a9a; }
    @media (max-width: 767px) {
      .favorites-container { padding: 10px 10px 84px; }
      .favorites-toolbar { gap: 10px; padding: 8px 10px 4px; }
      .favorites-toolbar-top { display:grid; grid-template-columns:minmax(0, 1fr); align-items:stretch; gap:8px; }
      .favorites-toolbar-actions { display:grid; grid-template-columns:repeat(2, minmax(0, 1fr)); gap:8px; }
      .favorites-toolbar-actions button { width:100%; padding:9px 10px; font-size:12px; margin:0; }
      .favorites-sort-control { width:100%; margin-left:0; justify-content:flex-start; flex-wrap:wrap; }
      .favorites-sort-control span { width:100%; }
      .favorites-sort-select { width:100%; min-width:0; }
      .item-card {
        grid-template-columns: minmax(112px, 36vw) minmax(0, 1fr);
        gap: 10px;
        padding: 10px;
        align-items: start;
      }
      .item-media-column { width: auto; min-width: 0; }
      .item-img-wrap,
      .item-img-placeholder { border-radius: 13px; }
      .item-body { gap: 8px; }
      .item-card-content-link { gap: 8px; }
      .item-card-heading { gap: 3px; }
      .item-brand { font-size: 10px; }
      .item-card-category { font-size: 9px; }
      .item-title { font-size: 12px; line-height: 1.4; }
      .item-summary-grid { grid-template-columns: 1fr; gap: 6px; }
      .item-price-panel,
      .item-meta-panel { padding: 7px 8px; gap: 5px; border-radius: 9px; }
      .item-price-label { font-size: 9px; }
      .item-price-main .row-val.jpy { font-size: 15px; }
      .item-price-main .row-val.eur { font-size: 12px; }
      .item-meta-cluster { gap: 5px; }
      .item-price-subline { padding-top: 4px; }
      .item-price-subline-label { font-size: 9px; }
      .item-vat-line { align-items: flex-start; }
      .item-vat-value,
      .item-vat-value .item-price-cluster { justify-content: flex-start; }
      .favorite-price-panel.has-change { grid-template-columns: minmax(0, 1fr) minmax(104px, 132px); }
      .favorite-price-column { gap: 5px; }
      .favorite-price-column .item-price-subline { padding-top: 4px; }
      .favorite-price-summary { gap: 5px; padding: 6px 7px; }
      .favorite-price-summary-main { grid-template-columns: 1fr; gap: 4px; }
      .favorite-price-summary-amount { justify-self: start; text-align: left; font-size: 12px; }
      .favorite-price-summary-badge { padding: 2px 6px; font-size: 9px; }
      .favorite-price-summary-meta { font-size: 10px; }
      .favorite-insights { gap: 6px; padding: 6px 7px; }
      .favorite-metric-grid { gap: 6px; }
      .favorite-metric-grid-summary { grid-template-columns:repeat(2, minmax(0, 1fr)); }
      .favorite-metric strong { font-size: 12px; }
      .item-media-actions { gap: 5px; }
      .item-action-main { min-height: 32px; font-size: 10px; padding: 6px 4px; }
      .item-action-icon { height: 32px; min-height: 32px; border-radius: 9px; }
      .favorite-card { grid-template-columns: minmax(124px, 39vw) minmax(0, 1fr); }
      .favorite-card .item-brand { font-size: 10px; }
      .favorite-card .item-title { font-size: 12px; line-height: 1.4; -webkit-line-clamp: 2; }
      .favorite-card .item-details { gap: 7px; }
      .favorite-card .row-label { min-width: 42px; font-size: 11px; }
      .favorite-card .item-row { font-size: 11px; }
      .item-taxonomy-preview .item-row { grid-template-columns: 62px minmax(0, 1fr); gap: 5px; }
      .item-taxonomy-preview .row-label { font-size: 10px; }
      .item-taxonomy-preview .row-val { font-size: 11px; }
      .favorite-card .row-val.jpy,
      .favorite-card .row-val.eur { font-size: 13px; }
      .favorite-card .item-price-main .row-val.jpy { font-size: 16px; }
      .favorite-card .item-price-main .row-val.eur { font-size: 12px; }
      .favorite-card .item-price-subline .row-val.jpy,
      .favorite-card .item-price-subline .row-val.eur { font-size: 11px; }
      .favorite-card .favorite-price-panel.has-change { grid-template-columns: minmax(0, 1fr); }
      .favorite-card .favorite-price-summary-amount { font-size: 12px; }
      .favorite-card .favorite-price-summary-meta { font-size: 10px; }
      .favorite-card .item-meta-cluster { justify-content: flex-start; }
      .favorite-card .item-status-badge,
      .favorite-card .favorite-status-badge,
      .favorite-card .item-chip { font-size: 10px; }
      .favorite-card .favorite-insights { border-radius: 9px; }
      .favorite-card .favorite-metric-grid-summary { grid-template-columns:repeat(2, minmax(0, 1fr)); }
      .favorite-card .favorite-metric { padding: 7px 8px; }
      .favorite-card .favorite-metric strong { font-size: 12px; }
      .favorite-card .favorite-metric small { font-size: 10px; }
      .v2-opportunity-strip { grid-template-columns:auto minmax(0, 1fr); }
      .v2-opportunity-target { grid-column:2; justify-items:start; }
      .v2-opportunity-inline-note { font-size: 10px; }
      .v2-opportunity-metrics { grid-template-columns:repeat(auto-fit, minmax(92px, 1fr)); gap: 7px; }
      .v2-opportunity-panel .favorite-metric { padding: 8px; }
      .v2-opportunity-panel .favorite-metric strong { font-size: 15px; }
      .v2-opportunity-panel .favorite-metric small { font-size: 10px; }
      .v2-score-breakdown-grid { grid-template-columns:repeat(2, minmax(0, 1fr)); }
      .detail-quick-facts { gap: 5px; }
      .detail-quick-facts .item-chip,
      .detail-compact-chip { font-size: 10px; }
      .detail-compact-chip { padding: 4px 8px; }
      .detail-compact-chip-label { font-size: 9px; }
      .detail-compact-chip-value { font-size: 10px; }
      .favorite-card .favorite-history-head { gap: 4px; }
      .favorite-card .favorite-history-list-compact { grid-template-columns:1fr; gap: 5px; }
      .favorite-card .favorite-delta-chip { padding: 5px 7px; font-size: 10px; gap: 6px; }
      .favorite-card .favorite-delta-chip strong { font-size: 11px; }
      .favorite-card .item-media-actions { gap: 5px; }
      .favorite-card .item-action-main { min-height: 32px; padding: 6px 4px; font-size: 10px; }
      .favorite-card .item-media-actions-1 { grid-template-columns: 36px; }
      .favorite-card .btn-fav-remove { width:36px; min-width:36px; height:32px; min-height:32px; border-radius:9px; }
      .favorite-card .favorite-select-row { margin-bottom: 2px; }
    }
    @media (max-width: 560px) {
      .favorite-price-panel.has-change,
      .favorite-card .favorite-price-panel.has-change {
        grid-template-columns: minmax(0, 1fr);
      }
      .favorite-price-summary {
        width: 100%;
      }
      .favorite-price-summary-main {
        grid-template-columns: minmax(0, 1fr) auto;
      }
      .favorite-price-summary-amount {
        justify-self: end;
        text-align: right;
      }
      .favorite-metric-grid-summary,
      .favorite-card .favorite-metric-grid-summary {
        grid-template-columns: repeat(2, minmax(0, 1fr));
      }
    }
    @media (max-width: 420px) {
      .favorite-card .favorite-price-summary-main {
        grid-template-columns: minmax(0, 1fr);
      }
      .favorite-card .favorite-price-summary-amount {
        justify-self: start;
        text-align: left;
      }
      .favorite-metric-grid-summary,
      .favorite-card .favorite-metric-grid-summary {
        grid-template-columns: minmax(0, 1fr);
      }
    }

    /* ── Trends view ── */
    .trends-container { display: grid; gap: 12px; }
    .trend-row { background: var(--surface); border: 1px solid var(--border); border-radius: 10px;
      padding: 12px; display: grid; grid-template-columns: 1fr 1fr 1fr 1fr; gap: 12px; align-items: center; }
    @media (max-width: 767px) {
      .trend-row { grid-template-columns: 1fr 1fr; gap: 8px; }
    }
    .trend-brand { font-weight: 600; font-size: 13px; }
    .trend-metric { display: flex; flex-direction: column; }
    .trend-metric-label { font-size: 10px; color: var(--muted); text-transform: uppercase; }
    .trend-metric-val { font-size: 14px; font-weight: 700; color: var(--accent); }
    .trend-metric-val.duration { color: #4caf50; }
    .trend-metric-val.count { color: #ff9800; }
    .trends-filter { display: flex; gap: 8px; margin-bottom: 12px; }
    .trends-filter select { background: var(--surface2); border: 1px solid var(--border); color: var(--text);
      padding: 8px 10px; border-radius: 8px; font-size: 13px; flex: 1; }
    .trends-empty { text-align: center; padding: 40px 20px; color: var(--muted); font-size: 13px; }
    .run-card { background: var(--surface); border: 1px solid var(--border); border-radius: 10px;
      padding: 12px; display: flex; flex-direction: column; gap: 8px; }
    .run-card.success { border-left: 4px solid #4caf50; }
    .run-card.neutral { border-left: 4px solid #3b9edd; }
    .status-neutral { background: #3b9edd33; color: #3b9edd; }
    .run-card.partial_error { border-left: 4px solid #ff9800; }
    .run-card.error { border-left: 4px solid #e53935; }
    .run-header { display: flex; justify-content: space-between; align-items: flex-start; }
    .run-time { font-size: 13px; font-weight: 600; }
    .run-status { font-size: 11px; font-weight: 700; padding: 2px 8px; border-radius: 12px; }
    .status-success { background: #4caf5033; color: #4caf50; }
    .status-partial_error { background: #ff980033; color: #ff9800; }
    .status-error { background: #e5393533; color: #e53935; }
    .run-info { display: grid; grid-template-columns: 1fr 1fr; gap: 8px; font-size: 12px; }
    .run-item { display: flex; align-items: baseline; gap: 6px; }
    .run-label { color: var(--muted); min-width: 80px; }
    .run-val { font-weight: 600; }
    .run-details { font-size: 11px; color: var(--muted); padding: 6px; background: var(--surface2);
      border-radius: 6px; max-height: 100px; overflow-y: auto; }

    /* ── Health / Monitoring ── */
    .health-page { display: grid; gap: 12px; width: 100%; }
    .health-summary-card { background: var(--surface); border: 1px solid var(--border); border-radius: 12px; padding: 14px; display: grid; gap: 12px; }
    .health-summary-head { display: flex; justify-content: space-between; align-items: flex-start; gap: 10px; }
    .health-summary-title { font-size: 16px; font-weight: 700; }
    .health-summary-subtitle { font-size: 12px; color: var(--muted); line-height: 1.45; margin-top: 4px; }
    .health-summary-generated { font-size: 11px; color: var(--muted); white-space: nowrap; }
    .health-summary-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 8px; }
    .health-summary-box { background: var(--surface2); border: 1px solid var(--border); border-radius: 10px; padding: 10px; display: flex; flex-direction: column; gap: 4px; }
    .health-summary-box span { font-size: 10px; text-transform: uppercase; color: var(--muted); letter-spacing: .4px; }
    .health-summary-box strong { font-size: 18px; }
    .health-services-row { display: flex; flex-wrap: wrap; gap: 8px; }
    .health-segment-row { display: flex; flex-wrap: wrap; gap: 8px; }
    .health-segment-chip { appearance: none; border: 1px solid var(--border); background: var(--surface2); color: var(--text); border-radius: 999px; padding: 8px 12px; font-size: 12px; line-height: 1; display: inline-flex; align-items: center; gap: 8px; cursor: pointer; }
    .health-segment-chip span { color: var(--muted); font-size: 11px; }
    .health-segment-chip.is-active { background: rgba(59, 158, 221, 0.16); border-color: rgba(59, 158, 221, 0.5); color: #8ecfff; }
    .health-segment-chip.is-active span { color: #b7e1ff; }
    .health-alerts-list { display: grid; gap: 10px; }
    .health-alert-card { background: var(--surface); border: 1px solid var(--border); border-radius: 12px; padding: 14px; display: grid; gap: 12px; }
    .health-empty-state { background: var(--surface); border: 1px dashed var(--border); border-radius: 12px; padding: 16px; color: var(--muted); text-align: center; }
    .health-alert-card.status-normal { border-left: 4px solid #4caf50; }
    .health-alert-card.status-watch { border-left: 4px solid #ff9800; }
    .health-alert-card.status-skew { border-left: 4px solid #7c4dff; }
    .health-alert-card.status-silent { border-left: 4px solid #e53935; }
    .health-alert-top { display: flex; justify-content: space-between; align-items: flex-start; gap: 10px; }
    .health-alert-name { font-size: 15px; font-weight: 700; }
    .health-alert-meta { font-size: 11px; color: var(--muted); margin-top: 4px; }
    .health-badge { padding: 5px 9px; border-radius: 999px; font-size: 11px; font-weight: 700; white-space: nowrap; }
    .health-badge.status-normal { background: #4caf5033; color: #4caf50; }
    .health-badge.status-watch { background: #ff980033; color: #ff9800; }
    .health-badge.status-skew { background: #7c4dff33; color: #b388ff; }
    .health-badge.status-silent { background: #e5393533; color: #ff8a80; }
    .health-metrics-grid { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 8px; }
    .health-metric-box { background: var(--surface2); border: 1px solid var(--border); border-radius: 10px; padding: 10px; display: flex; flex-direction: column; gap: 4px; }
    .health-metric-box strong { font-size: 16px; }
    .health-metric-label { font-size: 10px; text-transform: uppercase; color: var(--muted); letter-spacing: .4px; }
    .health-last-item-row { display: grid; gap: 4px; }
    .health-last-item-title { font-size: 13px; font-weight: 600; line-height: 1.4; }
    .health-last-item-meta, .health-reason { font-size: 12px; color: var(--muted); line-height: 1.45; }
    .health-card-actions { display: flex; justify-content: flex-end; }
    .health-alert-link { display: inline-flex; align-items: center; justify-content: center; min-height: 34px; padding: 8px 12px; border-radius: 10px; border: 1px solid rgba(59, 158, 221, 0.35); background: rgba(59, 158, 221, 0.12); color: #a8d8ff; text-decoration: none; font-size: 12px; font-weight: 600; }
    .health-alert-link:hover { background: rgba(59, 158, 221, 0.2); border-color: rgba(59, 158, 221, 0.55); }
    .health-monitoring-metrics { display: flex; gap: 8px; flex-wrap: wrap; }
    .health-monitoring-metric { padding: 7px 9px; border: 1px solid var(--border); border-radius: 9px; color: var(--muted); font-size: 12px; }
    .health-monitoring-metric b { color: var(--text); }
    .health-monitoring-metric em { color: var(--accent); font-style: normal; }
    @media (max-width: 767px) {
      .health-summary-card, .health-alert-card { border-radius: 10px; padding: 12px; }
      .health-summary-head, .health-alert-top { flex-direction: column; }
      .health-summary-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
      .health-metrics-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
      .health-summary-generated { white-space: normal; }
    }

    /* ── Misc ── */
    .spinner { width: 24px; height: 24px; border: 3px solid var(--border); border-top-color: var(--accent);
      border-radius: 50%; animation: spin .7s linear infinite; margin: 40px auto; }
    @keyframes spin { to { transform: rotate(360deg); } }
    .feed-empty { text-align: center; padding: 60px 20px; color: var(--muted); }
    .feed-empty .icon { font-size: 48px; margin-bottom: 16px; }
    .toast { position: fixed; bottom: 20px; left: 50%; transform: translateX(-50%) translateY(80px);
      background: #333; color: #fff; padding: 10px 18px; border-radius: 20px; font-size: 13px;
      transition: transform .3s; z-index: 999; pointer-events: none; }
    .toast.show { transform: translateX(-50%) translateY(0); }

    /* ── V2 detail page mobile UX ── */
    .detail-page { padding: 12px 12px 108px; width: 100%; max-width: 680px; margin: 0 auto; }
    .detail-shell { background: var(--surface); border: 1px solid var(--border); border-radius: 12px; overflow: hidden; }
    .detail-topbar { display:flex; justify-content:space-between; align-items:center; margin-bottom:12px; gap:8px; }
    .detail-media-stage {
      position: relative;
      display: grid;
      place-items: center;
      background: #111;
      min-height: min(62vh, 560px);
      max-height: min(72vh, 900px);
      overflow: hidden;
    }
    .detail-main-image {
      width: 100%;
      height: auto;
      max-height: min(72vh, 900px);
      object-fit: contain;
      display: block;
    }
    .detail-main-image-placeholder {
      width: 100%;
      min-height: min(48vh, 360px);
      display: grid;
      place-items: center;
      color: #777;
    }
    .detail-thumbs { display:flex; gap:8px; overflow:auto; padding:10px; background:var(--surface2); border-bottom:1px solid var(--border); }
    .detail-thumb { border:1px solid var(--border); padding:0; border-radius:8px; overflow:hidden; background:none; min-width:64px; height:64px; cursor:pointer; }
    .detail-grid { padding:14px; display:grid; gap:14px; }
    .detail-section-grid { display:grid; grid-template-columns:repeat(2, minmax(0, 1fr)); gap:14px; }
    .detail-header-block { display:grid; gap:10px; }
    .detail-title { font-size:18px; font-weight:700; line-height:1.35; }
    .detail-actions-bar { display:flex; gap:8px; flex-wrap:wrap; align-items:center; }
    .detail-header-block .detail-actions-bar { justify-content:flex-start; }
    .detail-quick-facts {
      display:flex;
      flex-wrap:wrap;
      gap:6px;
      align-items:center;
    }
    .detail-quick-facts .item-chip {
      max-width:100%;
      font-size:11px;
      padding:4px 8px;
    }
    .detail-compact-chip {
      display:inline-flex;
      align-items:center;
      gap:6px;
      max-width:100%;
      padding:4px 9px;
      border-radius:999px;
      border:1px solid rgba(59,158,221,0.22);
      background:rgba(59,158,221,0.08);
      color:var(--text);
      line-height:1.2;
    }
    .detail-compact-chip-label {
      display:inline-flex;
      align-items:center;
      gap:4px;
      color:var(--muted);
      font-size:10px;
      font-weight:700;
      text-transform:uppercase;
      letter-spacing:.3px;
      flex-shrink:0;
    }
    .detail-compact-chip-value {
      min-width:0;
      font-size:11px;
      font-weight:700;
      overflow-wrap:anywhere;
    }
    .detail-actions-bar.is-floating {
      position: fixed;
      left: var(--detail-actions-left, 12px);
      width: var(--detail-actions-width, calc(100vw - 24px));
      bottom: var(--detail-actions-bottom, 16px);
      z-index: 40;
      padding: 10px;
      border-radius: 14px;
      border: 1px solid rgba(255,255,255,0.08);
      background: linear-gradient(to top, rgba(17,17,17,0.98), rgba(17,17,17,0.92));
      box-shadow: 0 12px 28px rgba(0,0,0,0.28);
      backdrop-filter: blur(12px);
    }
    .detail-info-block { background: var(--surface2); border:1px solid var(--border); border-radius:10px; padding:10px; display:grid; gap:10px; }
    .detail-info-block-price { border-color: rgba(59,158,221,0.22); background: linear-gradient(180deg, rgba(59,158,221,0.08), rgba(255,255,255,0.02)); }
    .detail-section-head { display:flex; align-items:flex-start; justify-content:space-between; gap:10px; }
    .detail-section-title { margin-bottom:0; font-size:15px; font-weight:700; }
    .detail-section-subtitle { margin-top:3px; font-size:11px; color:var(--muted); line-height:1.35; }
    .detail-section-rows { display:grid; gap:8px; }
    .detail-product-summary {
      display:grid;
      gap:3px;
      min-width:0;
      padding:9px 10px;
      border:1px solid rgba(59,158,221,0.22);
      border-radius:9px;
      background:rgba(59,158,221,0.08);
    }
    .detail-product-summary-line {
      min-width:0;
      font-size:12px;
      line-height:1.35;
      overflow-wrap:anywhere;
    }
    .detail-synthesis-card {
      display:grid;
      gap:12px;
      min-width:0;
      padding:12px;
      border:1px solid rgba(59,158,221,0.28);
      border-radius:10px;
      background:linear-gradient(180deg, rgba(59,158,221,0.11), rgba(255,255,255,0.025));
    }
    .detail-synthesis-head { display:flex; align-items:flex-start; justify-content:space-between; gap:10px; min-width:0; }
    .detail-synthesis-confidence-list { display:flex; flex-wrap:wrap; justify-content:flex-end; gap:5px; min-width:0; }
    .detail-synthesis-confidence {
      display:inline-flex;
      align-items:center;
      gap:4px;
      padding:4px 7px;
      border:1px solid rgba(76,175,80,0.28);
      border-radius:999px;
      color:#a9e6ad;
      background:rgba(76,175,80,0.10);
      font-size:10px;
      font-weight:700;
      white-space:nowrap;
    }
    .detail-synthesis-facts { display:grid; grid-template-columns:repeat(2, minmax(0, 1fr)); gap:7px; min-width:0; }
    .detail-synthesis-fact { display:grid; gap:3px; min-width:0; padding:7px 8px; border-radius:8px; background:rgba(0,0,0,.12); }
    .detail-synthesis-label { color:var(--muted); font-size:10px; font-weight:700; }
    .detail-synthesis-value { min-width:0; color:var(--text); font-size:12px; line-height:1.3; overflow-wrap:anywhere; }
    .detail-synthesis-notes { display:grid; gap:5px; min-width:0; padding-top:2px; }
    .detail-synthesis-subtitle { color:var(--muted); font-size:10px; font-weight:750; letter-spacing:.04em; text-transform:uppercase; }
    .detail-synthesis-notes ul { display:grid; gap:5px; margin:0; padding:0; list-style:none; }
    .detail-synthesis-notes li { position:relative; padding-left:18px; color:var(--text); font-size:12px; line-height:1.35; overflow-wrap:anywhere; }
    .detail-synthesis-notes li::before { content:'•'; position:absolute; left:3px; color:#ffb74d; font-weight:800; }
    .detail-synthesis-notes.is-positive li::before { content:'✓'; color:#8edb94; }
    .detail-analysis-grid { display:grid; gap:10px; min-width:0; }
    .detail-analysis-disclosure { min-width:0; border:1px solid rgba(255,255,255,.09); border-radius:9px; background:rgba(0,0,0,.12); overflow:hidden; }
    .detail-analysis-disclosure > summary { display:flex; align-items:center; justify-content:space-between; gap:8px; min-width:0; padding:10px; cursor:pointer; list-style:none; }
    .detail-analysis-disclosure > summary::-webkit-details-marker { display:none; }
    .detail-analysis-disclosure > summary::before { content:'›'; flex:0 0 auto; color:var(--muted); font-size:16px; line-height:1; transform:rotate(0deg); transition:transform .15s ease; }
    .detail-analysis-disclosure[open] > summary::before { transform:rotate(90deg); }
    .detail-analysis-disclosure[open] > summary { border-bottom:1px solid rgba(255,255,255,.09); }
    .detail-analysis-disclosure-title { min-width:0; flex:1; font-size:12px; font-weight:750; color:var(--text); }
    .detail-analysis-disclosure-body { min-width:0; padding:9px; }
    .detail-analysis-card { min-width:0; border:1px solid rgba(255,255,255,.09); border-radius:9px; padding:9px; background:rgba(0,0,0,.12); display:grid; gap:9px; }
    .detail-analysis-card-head { display:flex; align-items:flex-start; justify-content:space-between; gap:8px; flex-wrap:wrap; }
    .detail-analysis-card-title { font-size:12px; font-weight:750; color:var(--text); }
    .detail-analysis-status { font-size:10px; color:var(--muted); font-weight:600; }
    .detail-analysis-subsection { display:grid; gap:4px; min-width:0; }
    .detail-analysis-subtitle { font-size:10px; text-transform:uppercase; letter-spacing:.04em; color:var(--muted); font-weight:750; }
    .detail-analysis-coherence { font-size:12px; line-height:1.25; overflow-wrap:anywhere; font-weight:700; }
    .detail-analysis-bullets { list-style:none; display:grid; gap:5px; margin:0; padding:0; }
    .detail-analysis-bullets li { position:relative; padding-left:0; font-size:12px; line-height:1.25; overflow-wrap:anywhere; }
    .detail-analysis-bullets li::before { content:none; }
    .detail-analysis-empty { font-size:12px; color:var(--muted); padding:8px 0; }
    .detail-section-rows-price { gap:7px; }
    .detail-section-rows-price .item-row {
      display:grid;
      grid-template-columns: 110px minmax(0, 1fr);
      align-items:start;
      gap:8px;
      padding:1px 0;
    }
    .detail-section-rows-price .row-label {
      min-width:0;
      line-height:1.35;
    }
    .detail-section-rows-price .row-val {
      min-width:0;
      text-align:right;
      justify-self:end;
      line-height:1.35;
    }
    .detail-inline-note {
      display:block;
      margin-top:2px;
      color:var(--muted);
      font-size:10px;
      font-style:normal;
    }
    .detail-section-rows-price .item-price-cluster {
      justify-content:flex-end;
      flex-wrap:wrap;
    }
    .detail-section-rows-price .item-price-subline {
      padding-top:0;
      border-top:0;
    }
    .item-row-price-change .row-label,
    .item-row-price-change .row-val {
      font-weight:700;
    }
    .item-row-current-price {
      padding-top:4px;
      margin-top:2px;
      border-top:1px solid rgba(255,255,255,0.06);
    }
    .item-row-current-price .row-label {
      color:var(--text);
      font-size:13px;
      font-weight:700;
    }
    .item-row-current-price .row-val {
      font-weight:700;
    }
    .item-row-current-price .row-val.jpy,
    .item-row-current-price .row-val.eur {
      font-size:15px;
      font-weight:700;
      font-style:normal;
    }
    .detail-price-change-chip {
      display:inline-flex;
      align-items:center;
      gap:6px;
      font-size:12px;
      line-height:1.25;
    }
    .detail-price-change-chip.is-down,
    .detail-price-change-val.is-down {
      color:#66bb6a;
    }
    .detail-price-change-chip.is-up,
    .detail-price-change-val.is-up {
      color:#ef5350;
    }
    .detail-price-hero {
      display:grid;
      grid-template-columns:repeat(2, minmax(0, 1fr));
      gap:8px;
    }
    .detail-price-hero.is-single { grid-template-columns:minmax(0, 1fr); }
    .detail-price-card {
      display:grid;
      gap:3px;
      min-width:0;
      padding:9px 10px;
      border-radius:10px;
      background:rgba(255,255,255,0.04);
      border:1px solid rgba(255,255,255,0.07);
    }
    .detail-price-card span {
      font-size:10px;
      text-transform:uppercase;
      letter-spacing:.04em;
      color:var(--muted);
    }
    .detail-price-card strong {
      font-size:20px;
      line-height:1.08;
      color:var(--text);
      overflow-wrap:anywhere;
    }
    .detail-price-card em {
      font-style:normal;
      font-size:15px;
      line-height:1.15;
      font-weight:700;
      color:var(--text);
      overflow-wrap:anywhere;
    }
    .detail-price-card small {
      font-size:10px;
      line-height:1.25;
      color:var(--muted);
      overflow-wrap:anywhere;
    }
    .detail-price-card-main {
      background:rgba(59,158,221,0.12);
      border-color:rgba(59,158,221,0.24);
      padding:12px;
      gap:4px;
    }
    .detail-price-card-main strong,
    .detail-price-card-main em { color:var(--accent); }
    .detail-price-card-main strong { font-size:24px; }
    .detail-price-card-main em { font-size:16px; }
    .detail-price-card-cost {
      background:rgba(255,167,38,0.10);
      border-color:rgba(255,167,38,0.20);
    }
    .detail-price-card-cost strong { color:#ffb74d; }
    .detail-metric-grid { display:grid; grid-template-columns:repeat(2, minmax(0, 1fr)); gap:8px; }
    .detail-metric-card {
      display:grid;
      gap:4px;
      min-width:0;
      padding:10px;
      border-radius:10px;
      background:rgba(255,255,255,0.04);
      border:1px solid rgba(255,255,255,0.07);
    }
    .detail-metric-card span {
      font-size:10px;
      text-transform:uppercase;
      letter-spacing:.04em;
      color:var(--muted);
    }
    .detail-metric-card strong {
      font-size:18px;
      line-height:1.15;
      color:var(--text);
      overflow-wrap:anywhere;
    }
    .detail-metric-card small {
      font-size:11px;
      line-height:1.3;
      color:var(--muted);
      overflow-wrap:anywhere;
    }
    .detail-metric-card-main {
      background:rgba(59,158,221,0.12);
      border-color:rgba(59,158,221,0.24);
    }
    .detail-metric-card-main strong { color:var(--accent); }
    .detail-metric-card-cost {
      background:rgba(255,167,38,0.10);
      border-color:rgba(255,167,38,0.20);
    }
    .detail-metric-card-cost strong { color:#ffb74d; }
    .detail-loading-box { font-size:12px; color:var(--muted); background:var(--surface2); border:1px solid var(--border); border-radius:10px; padding:10px; }
    .review-feedback-block { background: linear-gradient(180deg, rgba(255,255,255,0.02), rgba(255,255,255,0.01)); }
    .review-feedback-header { display:flex; justify-content:space-between; gap:10px; align-items:flex-start; margin-bottom:10px; }
    .review-feedback-subtitle { font-size:11px; color:var(--muted); }
    .review-feedback-status { font-size:11px; color:var(--muted); min-height:16px; }
    .review-feedback-grid { display:grid; grid-template-columns:repeat(2, minmax(0, 1fr)); gap:10px; }
    .review-feedback-field { display:grid; gap:6px; font-size:12px; color:var(--muted); }
    .review-feedback-select { min-width:0; }
    .review-feedback-comment { margin-top:10px; }
    .review-feedback-comment.is-hidden { display:none; }
    .review-feedback-textarea {
      width:100%;
      resize:vertical;
      min-height:96px;
      border:1px solid var(--border);
      border-radius:10px;
      background:var(--bg);
      color:var(--text);
      padding:10px 12px;
      font:inherit;
      line-height:1.45;
    }
    .review-feedback-actions { display:flex; justify-content:flex-end; margin-top:10px; }
    @media (min-width: 768px) {
      .detail-header-block .detail-actions-bar .btn-zenmarket,
      .detail-header-block .detail-actions-bar .btn-view,
      .detail-header-block .detail-actions-bar #btnDetailFav {
        min-height: 40px;
      }
      .detail-header-block .detail-actions-bar .btn-view,
      .detail-header-block .detail-actions-bar #btnDetailFav {
        flex: 0 0 auto;
      }
    }
    @media (max-width: 767px) {
      .detail-page { padding: 10px 10px 132px; }
      .detail-topbar { position: sticky; top: 0; z-index: 20; background: var(--bg); padding: 4px 0 8px; margin-bottom: 10px; }
      .detail-grid { padding: 12px; gap: 12px; }
      .detail-section-grid { grid-template-columns:1fr; gap:12px; }
      .detail-header-block { gap: 8px; }
      .detail-thumb { min-width: 56px; height: 56px; }
      .detail-actions-bar.is-floating { bottom: 64px; }
      .detail-actions-bar .btn-zenmarket,
      .detail-actions-bar .btn-view {
        min-height: 44px;
        font-size: 14px;
      }
      .detail-section-title { font-size:16px; }
      .detail-synthesis-head { display:grid; gap:8px; }
      .detail-synthesis-confidence-list { justify-content:flex-start; }
      .detail-synthesis-facts { grid-template-columns:1fr; }
      .detail-price-hero { grid-template-columns:repeat(2, minmax(0, 1fr)); }
      .detail-price-card { padding:8px 9px; }
      .detail-price-card strong { font-size:18px; }
      .detail-price-card em { font-size:14px; }
      .detail-metric-grid { grid-template-columns:1fr; }
      .review-feedback-grid { grid-template-columns:1fr; }
      .item-row { gap: 8px; }
      .detail-section-rows-price .item-row { grid-template-columns: 96px minmax(0, 1fr); gap: 6px; }
      .row-label { min-width: 78px; }
    }
