/* PVMarket — global light/green theme for pv-v2-shell app pages (CSS-only, no HTML changes) */

body.pv-v2-shell {
  color-scheme: light;

  /* Align with home-v0 marketing tokens */
  --home-v0-background: oklch(0.985 0.004 95);
  --home-v0-foreground: oklch(0.24 0.012 250);
  --home-v0-card: oklch(1 0 0);
  --home-v0-card-foreground: oklch(0.24 0.012 250);
  --home-v0-primary: oklch(0.52 0.1 159);
  --home-v0-primary-fg: oklch(0.99 0.01 150);
  --home-v0-secondary: oklch(0.96 0.006 95);
  --home-v0-secondary-fg: oklch(0.3 0.012 250);
  --home-v0-muted: oklch(0.96 0.005 95);
  --home-v0-muted-fg: oklch(0.52 0.012 250);
  --home-v0-border: oklch(0.91 0.006 95);
  --home-v0-solar: oklch(0.78 0.14 78);
  --home-v0-solar-fg: oklch(0.36 0.08 70);
  --home-v0-blue-chip: oklch(0.6 0.11 230);
  --home-v0-blue-chip-fg: oklch(0.45 0.11 230);

  /* style.css semantic tokens */
  --bg: var(--home-v0-background);
  --surface: var(--home-v0-card);
  --surface-elevated: oklch(0.98 0.003 95);
  --border: var(--home-v0-border);
  --text: var(--home-v0-foreground);
  --text-label: oklch(0.35 0.012 250);
  --text-secondary: oklch(0.45 0.012 250);
  --text-muted: var(--home-v0-muted-fg);
  --muted: var(--text-secondary);
  --link: var(--home-v0-primary);
  --link-hover: oklch(0.45 0.11 159);
  --accent: var(--home-v0-primary);
  --accent-hover: oklch(0.48 0.11 159);
  --pro: var(--home-v0-blue-chip);
  --error: #dc2626;
  --success: oklch(0.55 0.14 145);

  /* v2-shell tokens */
  --v2-bg: var(--bg);
  --v2-bg-elevated: var(--surface);
  --v2-bg-hover: var(--home-v0-secondary);
  --v2-fg: var(--text);
  --v2-muted: var(--text-muted);
  --v2-border: color-mix(in oklch, var(--home-v0-border) 85%, transparent);
  --v2-primary: var(--home-v0-primary);
  --v2-primary-fg: var(--home-v0-primary-fg);
  --v2-accent: var(--home-v0-blue-chip);
  --v2-accent-soft: color-mix(in oklch, var(--home-v0-blue-chip) 18%, transparent);
  --v2-destructive: #ef4444;

  background: var(--bg);
  color: var(--text);
}

/* Typography — style.css h1–h4 use dark-theme light text */
body.pv-v2-shell h1,
body.pv-v2-shell h2,
body.pv-v2-shell h3,
body.pv-v2-shell h4,
body.pv-v2-shell main h1,
body.pv-v2-shell main h2,
body.pv-v2-shell main h3,
body.pv-v2-shell main h4 {
  color: var(--text);
}

body.pv-v2-shell main a:not(.btn):not(.v2-brand):not(.v2-nav-link):not(.market-card-title-link):not(.data-hub-card) {
  color: var(--link);
}

body.pv-v2-shell main a:not(.btn):not(.v2-brand):not(.v2-nav-link):not(.market-card-title-link):not(.data-hub-card):hover {
  color: var(--link-hover);
}

/* Top navigation — match workspace light chrome */
body.pv-v2-shell .v2-topnav {
  border-bottom: 1px solid var(--home-v0-border);
  background: rgba(255, 255, 255, 0.92);
  backdrop-filter: blur(10px);
}

/* 統一ブランドロゴ（pv-wordmark）— v2 ヘッダーでも home/register/footer と同じ表記に */
body.pv-v2-shell .v2-topnav .v2-brand-logo { display: block; }
body.pv-v2-shell .v2-topnav .pv-brand-stack {
  display: flex;
  flex-direction: column;
  gap: 0.05rem;
  line-height: 1;
}
body.pv-v2-shell .v2-topnav .pv-wordmark {
  font-family: "DM Sans", "Inter", system-ui, sans-serif;
  font-weight: 700;
  font-size: 1.05rem;
  letter-spacing: 0.01em;
  color: #0d1a2e;
  white-space: nowrap;
}
body.pv-v2-shell .v2-topnav .pv-wm-pv { font-weight: 700; letter-spacing: 0.04em; }
body.pv-v2-shell .v2-topnav .pv-wm-market { font-weight: 600; }
body.pv-v2-shell .v2-topnav .pv-jp { color: #e07820; }
body.pv-v2-shell .v2-topnav .pv-tagline {
  font-family: "Noto Sans JP", system-ui, sans-serif;
  font-size: 0.58rem;
  font-weight: 500;
  color: #7a8494;
  letter-spacing: 0.04em;
}
@media (max-width: 640px) {
  body.pv-v2-shell .v2-topnav .pv-tagline { display: none; }
}

body.pv-v2-shell .v2-brand {
  color: var(--text);
}

body.pv-v2-shell .v2-brand-mark {
  background: var(--home-v0-primary);
  color: var(--home-v0-primary-fg);
}

body.pv-v2-shell .v2-nav-link {
  color: var(--text-muted);
}

body.pv-v2-shell .v2-nav-link:hover {
  color: var(--text);
  background: var(--home-v0-secondary);
}

body.pv-v2-shell .v2-nav-link.is-active {
  color: var(--home-v0-primary);
  background: color-mix(in oklch, var(--home-v0-primary) 12%, transparent);
  font-weight: 600;
}

body.pv-v2-shell .v2-nav-ghost {
  color: var(--text-muted);
}

body.pv-v2-shell .v2-nav-ghost:hover {
  color: var(--text);
}

body.pv-v2-shell .v2-icon-btn {
  color: var(--text-muted);
}

body.pv-v2-shell .v2-icon-btn:hover {
  background: var(--home-v0-secondary);
  color: var(--text);
}

/* ユーザーメニューはホーム(p9)と同じピル+頭文字アバターに統一 */
body.pv-v2-shell .v2-user-toggle {
  gap: 0.4rem;
  max-width: 12rem;
  padding: 0.28rem 0.6rem 0.28rem 0.32rem;
  border: 1.5px solid #dde3e8;
  border-radius: 999px;
  background: #fff;
  color: #272d35;
  font-weight: 700;
  transition: border-color 0.15s, color 0.15s;
}

body.pv-v2-shell .v2-user-toggle:hover,
body.pv-v2-shell .v2-user-menu.is-open .v2-user-toggle {
  background: #fff;
  border-color: oklch(0.6 0.14 200); /* = --p9-primary（ホームと同色） */
  color: oklch(0.6 0.14 200);
}

body.pv-v2-shell .v2-user-avatar {
  display: inline-flex;
  width: 1.6rem;
  height: 1.6rem;
  background: oklch(0.6 0.14 200); /* = --p9-primary（ホームと同色） */
  color: #fff;
  font-size: 0.8rem;
}

body.pv-v2-shell .v2-user-label {
  font-size: 0.82rem;
  font-weight: 700;
}

body.pv-v2-shell .v2-user-menu .nav-user-menu-chevron {
  font-size: 0.58rem;
  opacity: 0.7;
}

body.pv-v2-shell .v2-user-panel {
  background: var(--surface);
  border-color: var(--border);
  box-shadow: 0 8px 28px color-mix(in oklch, var(--text) 10%, transparent);
}

body.pv-v2-shell .v2-nav-toggle {
  border: 1px solid var(--border);
  background: var(--surface);
}

body.pv-v2-shell .v2-nav-toggle-bar {
  background: var(--text-muted);
}

body.pv-v2-shell .v2-primary-nav {
  background: var(--surface);
}

@media (max-width: 767px) {
  body.pv-v2-shell .v2-topnav.is-mobile-open .v2-primary-nav {
    border-top-color: var(--border);
  }
}

body.pv-v2-shell .v2-phase-banner {
  background: color-mix(in oklch, var(--home-v0-blue-chip) 8%, var(--surface));
  color: var(--text-muted);
}

body.pv-v2-shell .v2-phase-banner strong {
  color: var(--home-v0-blue-chip-fg);
}

/* Footer */
body.pv-v2-shell .footer {
  border-top: 1px solid var(--border);
  background: var(--surface);
}

body.pv-v2-shell .footer-legal a {
  color: var(--text-muted);
}

body.pv-v2-shell .footer-legal a:hover {
  color: var(--text);
}

body.pv-v2-shell .footer-meta,
body.pv-v2-shell .footer-copy {
  color: var(--text-muted);
}

body.pv-v2-shell .footer-meta a {
  color: var(--home-v0-primary);
}

/* Manage subnav */
body.pv-v2-shell .manage-subnav {
  background: var(--surface);
  border-color: var(--border);
}

body.pv-v2-shell .manage-subnav-link {
  color: var(--text-muted);
}

body.pv-v2-shell .manage-subnav-link:hover,
body.pv-v2-shell .manage-subnav-link.is-active {
  color: var(--home-v0-primary);
  background: color-mix(in oklch, var(--home-v0-primary) 10%, transparent);
}

/* Buttons */
body.pv-v2-shell .btn-primary {
  background: var(--home-v0-primary);
  color: var(--home-v0-primary-fg);
}

body.pv-v2-shell .btn-primary:hover {
  background: var(--accent-hover);
  color: var(--home-v0-primary-fg);
}

body.pv-v2-shell .btn-outline {
  color: var(--home-v0-primary);
  border-color: color-mix(in oklch, var(--home-v0-primary) 35%, var(--border));
  background: var(--surface);
}

body.pv-v2-shell .btn-outline:hover {
  background: color-mix(in oklch, var(--home-v0-primary) 8%, var(--surface));
}

body.pv-v2-shell .tag {
  background: var(--home-v0-secondary);
  color: var(--text-secondary);
}

body.pv-v2-shell .tag.pro {
  background: color-mix(in oklch, var(--home-v0-blue-chip) 15%, transparent);
  color: var(--home-v0-blue-chip-fg);
}

/* Forms & auth */
body.pv-v2-shell .auth-box,
body.pv-v2-shell .auth-box-wide,
body.pv-v2-shell .card {
  background: var(--surface);
  border-color: var(--border);
  box-shadow: 0 4px 18px color-mix(in oklch, var(--text) 6%, transparent);
}

body.pv-v2-shell .auth-box input,
body.pv-v2-shell .auth-box select,
body.pv-v2-shell .auth-box textarea,
body.pv-v2-shell .contact-textarea,
body.pv-v2-shell input[type="text"],
body.pv-v2-shell input[type="email"],
body.pv-v2-shell input[type="password"],
body.pv-v2-shell input[type="search"],
body.pv-v2-shell input[type="number"],
body.pv-v2-shell input[type="tel"],
body.pv-v2-shell input[type="url"],
body.pv-v2-shell select,
body.pv-v2-shell textarea {
  background: var(--surface);
  border-color: var(--border);
  color: var(--text);
}

body.pv-v2-shell .auth-box input:focus,
body.pv-v2-shell input:focus,
body.pv-v2-shell select:focus,
body.pv-v2-shell textarea:focus {
  border-color: color-mix(in oklch, var(--home-v0-primary) 55%, transparent);
  outline: none;
  box-shadow: 0 0 0 3px color-mix(in oklch, var(--home-v0-primary) 15%, transparent);
}

body.pv-v2-shell .password-toggle-btn:hover {
  background: var(--home-v0-secondary);
  color: var(--text-secondary);
}

body.pv-v2-shell label,
body.pv-v2-shell .auth-box label,
body.pv-v2-shell .contact-form label {
  color: var(--text-label);
}

body.pv-v2-shell .hint,
body.pv-v2-shell .muted,
body.pv-v2-shell .text-muted,
body.pv-v2-shell .market-subtitle {
  color: var(--text-muted);
}

/* Tables */
body.pv-v2-shell .results .table-wrap,
body.pv-v2-shell table {
  background: var(--surface);
}

body.pv-v2-shell .admin-table th,
body.pv-v2-shell .results table.results-data-table thead th {
  background: var(--home-v0-secondary);
  color: var(--text-muted);
}

body.pv-v2-shell .admin-table td,
body.pv-v2-shell .results table.results-data-table tbody td {
  color: var(--text);
}

body.pv-v2-shell .admin-section,
body.pv-v2-shell .admin-feedback-card {
  background: var(--surface);
  border-color: var(--border);
}

body.pv-v2-shell .admin-table th {
  background: var(--home-v0-secondary);
}

/* KPI / stat cards with hardcoded dark gradients */
body.pv-v2-shell .hero-kpi,
body.pv-v2-shell .mypage-kpi-highlight {
  background: color-mix(in oklch, var(--home-v0-primary) 8%, var(--surface));
  border-color: color-mix(in oklch, var(--home-v0-primary) 30%, var(--border));
  box-shadow: none;
}

body.pv-v2-shell .hero-kpi::before,
body.pv-v2-shell .mypage-kpi-highlight::before {
  background: linear-gradient(90deg, transparent, color-mix(in oklch, var(--home-v0-primary) 45%, transparent), transparent);
}

body.pv-v2-shell .hero-kpi-number,
body.pv-v2-shell .mypage-kpi-number,
body.pv-v2-shell .mypage-kpi-highlight .mypage-kpi-number {
  color: var(--text);
}

body.pv-v2-shell .hero-kpi-highlight .hero-kpi-number {
  color: var(--home-v0-primary);
}

body.pv-v2-shell .hero-kpi-accent .hero-kpi-number {
  color: var(--home-v0-solar-fg);
}

body.pv-v2-shell .mypage-kpi {
  background: var(--surface);
  border-color: var(--border);
}

body.pv-v2-shell .mypage-region-item {
  background: var(--surface);
  border-color: var(--border);
}

body.pv-v2-shell .pricing-card-enterprise {
  background: var(--home-v0-secondary);
  border-color: var(--border);
}

/* Market */
body.pv-v2-shell .market-toolbar-panel,
body.pv-v2-shell .market-stats-item,
body.pv-v2-shell .market-detail-panel,
body.pv-v2-shell .market-form-panel,
body.pv-v2-shell .market-thread-panel,
body.pv-v2-shell .market-messages-panel {
  background: var(--surface);
  border-color: var(--border);
}

body.pv-v2-shell .market-card {
  background: var(--surface);
  border-color: var(--border);
  box-shadow: 0 4px 16px color-mix(in oklch, var(--text) 8%, transparent);
}

body.pv-v2-shell .market-card:hover {
  border-color: color-mix(in oklch, var(--home-v0-primary) 35%, var(--border));
  box-shadow: 0 8px 22px color-mix(in oklch, var(--text) 10%, transparent);
}

body.pv-v2-shell .market-card-media {
  background: linear-gradient(145deg, color-mix(in oklch, var(--home-v0-secondary) 90%, var(--home-v0-blue-chip) 10%), var(--home-v0-secondary));
}

body.pv-v2-shell .market-card-media--equipment-pcs {
  background: linear-gradient(145deg, color-mix(in oklch, var(--home-v0-blue-chip) 25%, var(--home-v0-secondary)), var(--home-v0-secondary));
}

body.pv-v2-shell .market-card-media--service-mowing,
body.pv-v2-shell .market-card-media--service-herbicide {
  background: linear-gradient(145deg, color-mix(in oklch, var(--home-v0-primary) 22%, var(--home-v0-secondary)), var(--home-v0-secondary));
}

body.pv-v2-shell .market-card-media--service-inspection,
body.pv-v2-shell .market-card-media--service-wash,
body.pv-v2-shell .market-card-media--service-repair {
  background: linear-gradient(145deg, color-mix(in oklch, var(--home-v0-blue-chip) 22%, var(--home-v0-secondary)), var(--home-v0-secondary));
}

body.pv-v2-shell .market-card-title a {
  color: var(--text);
}

body.pv-v2-shell .market-card-title a:hover {
  color: var(--home-v0-primary);
}

body.pv-v2-shell .market-stats-inline-item--equipment .market-stats-num {
  color: var(--home-v0-blue-chip-fg);
}

body.pv-v2-shell .market-stats-inline-item--service .market-stats-num {
  color: var(--home-v0-primary);
}

body.pv-v2-shell .market-stats-inline-item--total .market-stats-num {
  color: var(--home-v0-solar-fg);
}

body.pv-v2-shell .market-tab {
  color: var(--text-muted);
}

body.pv-v2-shell .market-tab.is-active,
body.pv-v2-shell .market-tab:hover {
  color: var(--home-v0-primary);
}

body.pv-v2-shell .market-search-input {
  background: var(--surface);
  border-color: var(--border);
  color: var(--text);
}

/* Maps */
body.pv-v2-shell .pv-map,
body.pv-v2-shell .search-results-map,
body.pv-v2-shell .facility-map {
  background: color-mix(in oklch, var(--home-v0-primary) 4%, #eef3ef);
}

body.pv-v2-shell .pv-map .leaflet-container,
body.pv-v2-shell .search-results-map .leaflet-container,
body.pv-v2-shell .facility-map .leaflet-container {
  background: color-mix(in oklch, var(--home-v0-primary) 4%, #eef3ef) !important;
}

body.pv-v2-shell .leaflet-bar a {
  background: var(--surface);
  color: var(--text);
  border-color: var(--border);
}

body.pv-v2-shell .leaflet-bar a:hover {
  background: var(--home-v0-secondary);
  color: var(--home-v0-primary);
}

body.pv-v2-shell .leaflet-control-attribution {
  background: color-mix(in oklch, var(--surface) 88%, transparent) !important;
  color: var(--text-muted) !important;
}

body.pv-v2-shell .pv-map .marker-cluster-small,
body.pv-v2-shell .pv-map .marker-cluster-medium,
body.pv-v2-shell .pv-map .marker-cluster-large {
  background-color: color-mix(in oklch, var(--home-v0-primary) 22%, transparent);
}

body.pv-v2-shell .pv-map .marker-cluster-small div,
body.pv-v2-shell .pv-map .marker-cluster-medium div,
body.pv-v2-shell .pv-map .marker-cluster-large div {
  background-color: color-mix(in oklch, var(--home-v0-primary) 88%, transparent);
  color: #fff;
}

body.pv-v2-shell .search-map-marker-wrap {
  background: transparent;
  border: none;
}

body.pv-v2-shell .search-map-marker-facility {
  display: block;
  width: 18px;
  height: 18px;
  margin: 6px;
  border-radius: 50%;
  background: var(--home-v0-primary);
  box-shadow:
    0 0 0 3px #fff,
    0 2px 10px rgba(15, 23, 20, 0.42);
}

/* Facility / legacy detail panels */
body.pv-v2-shell .facility-primary-info,
body.pv-v2-shell .facility-map-section,
body.pv-v2-shell .facility-section,
body.pv-v2-shell .owner-room-panel,
body.pv-v2-shell .owner-room-metric-panel,
body.pv-v2-shell .profile-banner,
body.pv-v2-shell .profile-card,
body.pv-v2-shell .work-order-card,
body.pv-v2-shell .work-order-detail-panel {
  background: var(--surface);
  border-color: var(--border);
}

body.pv-v2-shell .section-title,
body.pv-v2-shell .market-title,
body.pv-v2-shell .market-latest-title {
  color: var(--text);
}

/* Tabs (search form on targets etc.) */
body.pv-v2-shell .tabs label,
body.pv-v2-shell .search-type-tabs label {
  background: var(--home-v0-secondary);
  border-color: var(--border);
  color: var(--text-muted);
}

body.pv-v2-shell .tabs label.active,
body.pv-v2-shell .search-type-tabs label.active {
  background: color-mix(in oklch, var(--home-v0-primary) 12%, transparent);
  border-color: color-mix(in oklch, var(--home-v0-primary) 40%, var(--border));
  color: var(--text);
}

body.pv-v2-shell .search-input,
body.pv-v2-shell .search-select {
  background: var(--surface);
  border-color: var(--border);
  color: var(--text);
}

/* Downloads / targets panels */
body.pv-v2-shell .downloads-panel,
body.pv-v2-shell .targets-panel,
body.pv-v2-shell .data-hub-card {
  background: var(--surface);
  border-color: var(--border);
}

body.pv-v2-shell .data-hub-card:hover {
  border-color: color-mix(in oklch, var(--home-v0-primary) 35%, var(--border));
}

/* Details/summary accordions */
body.pv-v2-shell details,
body.pv-v2-shell .discover-tools-details {
  background: var(--surface);
  border-color: var(--border);
}

/* Empty states */
body.pv-v2-shell .market-empty-state,
body.pv-v2-shell .mypage-empty {
  color: var(--text-muted);
}

/* Warn / feedback */
body.pv-v2-shell .warn,
body.pv-v2-shell .feedback-error {
  color: color-mix(in oklch, #ef4444 75%, var(--text));
}

body.pv-v2-shell .feedback-success {
  color: color-mix(in oklch, var(--success) 85%, var(--text));
}

/* Register role cards */
body.pv-v2-shell .auth-box .register-form-v2 label.register-role-card,
body.pv-v2-shell .auth-box .register-form-v2 label.register-entity-option,
body.pv-v2-shell .auth-box .register-form-v2 label.register-service-option {
  background: var(--surface);
  border-color: var(--border);
  color: var(--text);
}

body.pv-v2-shell .auth-box .register-form-v2 label.register-role-card:has(input:checked),
body.pv-v2-shell .auth-box .register-form-v2 label.register-entity-option:has(input:checked),
body.pv-v2-shell .auth-box .register-form-v2 label.register-service-option:has(input:checked) {
  border-color: color-mix(in oklch, var(--home-v0-primary) 45%, var(--border));
  background: color-mix(in oklch, var(--home-v0-primary) 8%, var(--surface));
}

/* Owner room / dashboard */
body.pv-v2-shell .owner-room-group-chip {
  background: var(--surface);
  border-color: var(--border);
  color: var(--text-muted);
}

body.pv-v2-shell .owner-room-group-chip:hover {
  color: var(--text);
  border-color: color-mix(in oklch, var(--home-v0-primary) 35%, var(--border));
  background: color-mix(in oklch, var(--home-v0-primary) 8%, var(--surface));
}

body.pv-v2-shell .owner-room-group-chip.is-active {
  color: var(--home-v0-primary);
  border-color: color-mix(in oklch, var(--home-v0-primary) 45%, var(--border));
  background: color-mix(in oklch, var(--home-v0-primary) 12%, transparent);
}

body.pv-v2-shell .owner-room-nav-link {
  color: var(--text-muted);
}

body.pv-v2-shell .owner-room-nav-link:hover,
body.pv-v2-shell .owner-room-nav-link.is-active {
  color: var(--home-v0-primary);
  background: color-mix(in oklch, var(--home-v0-primary) 10%, transparent);
}

body.pv-v2-shell .owner-room-nav--sidebar {
  border-right-color: var(--border);
}

body.pv-v2-shell .owner-room-claim-notice {
  background: color-mix(in oklch, var(--home-v0-solar) 15%, var(--surface));
  border-color: color-mix(in oklch, var(--home-v0-solar) 35%, var(--border));
  color: var(--text);
}

/* Profile public */
body.pv-v2-shell .profile-public-banner {
  background: var(--home-v0-secondary);
  color: var(--text-secondary);
}

/* Col-picker / modal overlays on app pages */
body.pv-v2-shell .col-picker-panel {
  background: var(--surface);
  border-color: var(--border);
  color: var(--text);
}

/* ── Dark chip / preset / dialog sweep (targets, hero forms, market) ── */

body.pv-v2-shell .targets-preset-btn,
body.pv-v2-shell .targets-form--hero .targets-preset-btn,
body.pv-v2-shell .targets-panel .targets-preset-btn,
body.pv-v2-shell .targets-form .targets-preset-btn {
  border: 1px solid var(--border);
  border-radius: 999px;
  background: var(--surface);
  color: var(--text);
  box-shadow: 0 1px 2px color-mix(in oklch, var(--text) 4%, transparent);
}

body.pv-v2-shell .targets-preset-btn:hover,
body.pv-v2-shell .targets-form--hero .targets-preset-btn:hover,
body.pv-v2-shell .targets-panel .targets-preset-btn:hover,
body.pv-v2-shell .targets-form .targets-preset-btn:hover {
  border-color: color-mix(in oklch, var(--home-v0-primary) 45%, var(--border));
  color: var(--home-v0-primary);
  background: color-mix(in oklch, var(--home-v0-primary) 6%, var(--surface));
}

body.pv-v2-shell .targets-form--hero .search-type-tabs label,
body.pv-v2-shell .search-form--hero .search-type-tabs label,
body.pv-v2-shell .targets-panel .search-type-tabs label,
body.pv-v2-shell .targets-form .search-type-tabs label {
  border-radius: 999px;
  border: 1px solid var(--border);
  background: var(--surface);
  color: var(--text-muted);
}

body.pv-v2-shell .targets-form--hero .search-type-tabs label:hover,
body.pv-v2-shell .search-form--hero .search-type-tabs label:hover,
body.pv-v2-shell .targets-panel .search-type-tabs label:hover,
body.pv-v2-shell .targets-form .search-type-tabs label:hover {
  border-color: color-mix(in oklch, var(--home-v0-primary) 35%, var(--border));
  color: var(--text);
  background: color-mix(in oklch, var(--home-v0-primary) 6%, var(--surface));
}

body.pv-v2-shell .targets-form--hero .search-type-tabs label.active,
body.pv-v2-shell .search-form--hero .search-type-tabs label.active,
body.pv-v2-shell .targets-panel .search-type-tabs label.active,
body.pv-v2-shell .targets-form .search-type-tabs label.active {
  border-color: color-mix(in oklch, var(--home-v0-primary) 45%, var(--border));
  background: color-mix(in oklch, var(--home-v0-primary) 12%, transparent);
  color: var(--text);
  box-shadow: none;
}

body.pv-v2-shell .targets-number-input,
body.pv-v2-shell .targets-form .targets-number-input,
body.pv-v2-shell .targets-form--hero .targets-number-input {
  border: 1px solid var(--border);
  border-radius: var(--radius-sm, 8px);
  background: var(--surface);
  color: var(--text);
}

body.pv-v2-shell .targets-number-input:focus,
body.pv-v2-shell .targets-form .targets-number-input:focus {
  border-color: color-mix(in oklch, var(--home-v0-primary) 55%, transparent);
  outline: none;
  box-shadow: 0 0 0 3px color-mix(in oklch, var(--home-v0-primary) 15%, transparent);
}

body.pv-v2-shell .targets-select,
body.pv-v2-shell .targets-form .targets-select {
  background: var(--surface);
  border-color: var(--border);
  color: var(--text);
}

body.pv-v2-shell .search-hero-report-filter-tab {
  border: 1px solid var(--border);
  background: var(--surface);
  color: var(--text-muted);
}

body.pv-v2-shell .search-hero-report-filter-tab.is-active {
  border-color: color-mix(in oklch, var(--home-v0-primary) 45%, var(--border));
  background: color-mix(in oklch, var(--home-v0-primary) 12%, transparent);
  color: var(--home-v0-primary);
}

body.pv-v2-shell .market-stats-item {
  background: var(--surface);
}

body.pv-v2-shell .market-messages-list,
body.pv-v2-shell .market-thread-messages {
  background: var(--home-v0-secondary);
}

body.pv-v2-shell .market-msg {
  background: var(--surface);
  border-color: var(--border);
}

body.pv-v2-shell .market-msg--mine {
  border-color: color-mix(in oklch, var(--home-v0-primary) 35%, var(--border));
  background: color-mix(in oklch, var(--home-v0-primary) 8%, var(--surface));
}

body.pv-v2-shell dialog,
body.pv-v2-shell .facility-map-owner-dialog {
  background: var(--surface);
  color: var(--text);
  border: 1px solid var(--border);
  box-shadow: 0 12px 40px color-mix(in oklch, var(--text) 12%, transparent);
}

body.pv-v2-shell dialog::backdrop,
body.pv-v2-shell .facility-map-owner-dialog::backdrop {
  background: color-mix(in oklch, var(--text) 35%, transparent);
}

body.pv-v2-shell .facility-map-owner-dialog-title {
  color: var(--home-v0-primary);
}

body.pv-v2-shell .facility-map-owner-dialog-login a {
  color: var(--home-v0-primary);
}

body.pv-v2-shell .source-accordion-summary {
  background: color-mix(in oklch, var(--home-v0-primary) 4%, var(--surface));
}

body.pv-v2-shell .source-accordion-summary:hover {
  background: color-mix(in oklch, var(--home-v0-primary) 8%, var(--surface));
}

body.pv-v2-shell .source-accordion-title {
  color: var(--text-secondary);
}

body.pv-v2-shell .source-accordion[open] .source-accordion-title {
  color: var(--home-v0-primary);
}

/* ドロップダウンはホーム（p9）と同じ見た目に統一: 白パネル・radius12・同じ影・同じ余白 */
body.pv-v2-shell .nav-user-menu-panel {
  min-width: 12rem;
  padding: 0.4rem 0;
  background: #fff;
  border: 1px solid #dde3e8;
  border-radius: 12px;
  box-shadow: 0 12px 32px rgba(39, 45, 53, 0.16);
}

body.pv-v2-shell .nav-user-menu-item {
  padding: 0.55rem 1rem;
  font-size: 0.85rem;
  font-weight: 600;
}

body.pv-v2-shell .nav-user-menu-item:hover {
  background: #eef4f7;
  color: var(--home-v0-primary);
}

/* ── Legacy amber/yellow text → green primary ── */

body.pv-v2-shell .targets-company-link,
body.pv-v2-shell .targets-table-wrap .targets-company-link {
  color: var(--home-v0-primary) !important;
}

body.pv-v2-shell .targets-company-link:hover,
body.pv-v2-shell .targets-table-wrap .targets-company-link:hover {
  color: var(--link-hover) !important;
}

body.pv-v2-shell .targets-sortable-table .targets-sort-th:hover,
body.pv-v2-shell .targets-sortable-table .targets-sort-th.is-active {
  color: var(--home-v0-primary);
}

body.pv-v2-shell .targets-results .hero-kpi-number,
body.pv-v2-shell .targets-stats .hero-kpi-number {
  color: var(--text);
}

body.pv-v2-shell .targets-results .hero-kpi-highlight .hero-kpi-number {
  color: var(--home-v0-primary);
}

body.pv-v2-shell .targets-results .hero-kpi-highlight::before {
  background: linear-gradient(
    90deg,
    transparent,
    color-mix(in oklch, var(--home-v0-primary) 55%, transparent),
    transparent
  );
}

body.pv-v2-shell .facility-link {
  color: var(--home-v0-primary);
}

body.pv-v2-shell .facility-link:hover {
  color: var(--link-hover);
}

body.pv-v2-shell .results-cap {
  color: var(--home-v0-muted-fg);
  border-color: color-mix(in oklch, var(--home-v0-primary) 30%, var(--border));
  background: color-mix(in oklch, var(--home-v0-primary) 6%, var(--surface));
}

body.pv-v2-shell .facility-vault-lock-badge {
  color: var(--home-v0-primary);
  border-color: color-mix(in oklch, var(--home-v0-primary) 35%, var(--border));
  background: color-mix(in oklch, var(--home-v0-primary) 10%, var(--surface));
}

body.pv-v2-shell .owner-room-group-chip.is-active {
  color: var(--home-v0-primary);
  border-color: color-mix(in oklch, var(--home-v0-primary) 45%, var(--border));
  background: color-mix(in oklch, var(--home-v0-primary) 12%, transparent);
}

body.pv-v2-shell .search-results-kpi-card-icon--capacity {
  color: var(--home-v0-solar-fg);
  background: color-mix(in oklch, var(--home-v0-solar) 22%, transparent);
}

/* 保有発電所管理 — KPI cards (light shell) */
body.pv-v2-shell .owned-dashboard-kpis .search-results-kpi-card {
  background: var(--surface);
  border-color: var(--border);
}

body.pv-v2-shell .owned-dashboard-kpis .search-results-kpi-card--highlight {
  border-color: color-mix(in oklch, var(--home-v0-primary) 40%, var(--border));
  background: color-mix(in oklch, var(--home-v0-primary) 8%, var(--surface));
}

body.pv-v2-shell .owned-dashboard-kpis .search-results-kpi-card--highlight .search-results-kpi-number {
  color: var(--home-v0-primary);
}

body.pv-v2-shell .owned-dashboard-kpis .search-results-kpi-card-icon--count,
body.pv-v2-shell .owned-dashboard-kpis .search-results-kpi-card-icon--verified,
body.pv-v2-shell .owned-dashboard-kpis .search-results-kpi-card-icon--region {
  color: var(--home-v0-primary);
  background: color-mix(in oklch, var(--home-v0-primary) 12%, transparent);
}

body.pv-v2-shell .insight-kpi-value {
  color: var(--text);
}

body.pv-v2-shell .results-eyebrow {
  color: var(--home-v0-primary);
}
