.ap-pokemon-wrapper {
	--ap-pokemon-ink: #20212b;
	--ap-pokemon-muted: #727583;
	--ap-pokemon-line: #e9e9ef;
	--ap-pokemon-page: #f6f6f9;
	--ap-pokemon-surface: #ffffff;
	--ap-pokemon-primary: #6654d9;
	--ap-pokemon-primary-soft: #f0eeff;
	--ap-pokemon-open: #14865f;
	--ap-pokemon-open-soft: #eaf8f1;
	--ap-pokemon-upcoming: #bf6a13;
	--ap-pokemon-upcoming-soft: #fff5e8;
	--ap-pokemon-closed: #7c8190;
	box-sizing: border-box;
	max-width: 820px;
	margin: 20px auto;
	padding: 12px;
	border-radius: 18px;
	color: var(--ap-pokemon-ink);
	background: var(--ap-pokemon-page);
	font-size: 14px;
	line-height: 1.55;
}
.ap-pokemon-wrapper *, .ap-pokemon-wrapper *::before, .ap-pokemon-wrapper *::after { box-sizing: border-box; }
.ap-pokemon-hero {
	display: flex;
	flex-direction: column;
	gap: 8px;
	padding: 14px 16px;
	border-radius: 13px;
	background: var(--ap-pokemon-surface);
	box-shadow: 0 1px 3px rgba(30, 31, 42, .04);
}
.ap-pokemon-eyebrow {
	margin: 0;
	color: var(--ap-pokemon-primary);
	font-size: 10px;
	font-weight: 800;
	letter-spacing: .09em;
	line-height: 1.2;
	text-transform: uppercase;
}
.ap-pokemon-product-heading { display: flex; align-items: center; min-width: 0; gap: 10px; }
.ap-pokemon-product-image {
	flex: 0 0 220px;
	width: 220px;
	height: 220px;
	overflow: hidden;
	border-radius: 10px;
	background: #f1f1f5;
}
.ap-pokemon-product-image img { display: block; width: 100%; height: 100%; object-fit: cover; }
.ap-pokemon-product-image-rakuten { display: block; text-decoration: none; }
.ap-pokemon-product-image-rakuten img { object-fit: contain; }
@media (max-width: 420px) {
	.ap-pokemon-product-heading { flex-direction: column; align-items: center; text-align: center; }
	.ap-pokemon-product-image { flex-basis: 128px; width: min(72vw, 220px); height: min(72vw, 220px); }
}
.ap-pokemon-product-heading > div:last-child { min-width: 0; }
.ap-pokemon-page-title {
	margin: 0;
	color: var(--ap-pokemon-ink);
	font-size: 25px;
	font-weight: 800;
	line-height: 1.35;
	overflow-wrap: anywhere;
}
.ap-pokemon-product-name {
	margin: 0;
	overflow-wrap: anywhere;
	color: var(--ap-pokemon-ink);
	font-size: 16px;
	font-weight: 800;
	line-height: 1.35;
}
.ap-pokemon-product-heading p, .ap-pokemon-updated { margin: 2px 0 0; color: var(--ap-pokemon-muted); font-size: 12px; }
.ap-pokemon-intro { margin: 2px 0 0; color: var(--ap-pokemon-muted); font-size: 13px; line-height: 1.65; }
.ap-pokemon-updated { margin-top: 1px; }
.ap-pokemon-section {
	margin-top: 12px;
	padding: 20px 16px;
	border-radius: 13px;
	background: var(--ap-pokemon-surface);
	box-shadow: 0 1px 3px rgba(30, 31, 42, .04);
}
.ap-pokemon-section-head { display: flex; align-items: center; justify-content: space-between; }
.ap-pokemon-section h2 { margin: 0; color: var(--ap-pokemon-ink); font-size: 19px; line-height: 1.35; }
.ap-pokemon-status-summary { display: flex; flex-wrap: wrap; gap: 7px; margin: 15px 0 14px; }
.ap-pokemon-status-summary span {
	display: inline-flex;
	align-items: center;
	gap: 5px;
	min-height: 29px;
	padding: 4px 9px;
	border-radius: 999px;
	font-size: 12px;
	font-weight: 700;
	white-space: nowrap;
}
.ap-pokemon-status-summary b { font-size: 14px; }
.ap-pokemon-status-summary .ap-pokemon-status-open { color: var(--ap-pokemon-open); background: var(--ap-pokemon-open-soft); }
.ap-pokemon-status-summary .ap-pokemon-status-upcoming { color: var(--ap-pokemon-upcoming); background: var(--ap-pokemon-upcoming-soft); }
.ap-pokemon-status-summary .ap-pokemon-status-closed { color: var(--ap-pokemon-closed); background: #f0f1f4; }
.ap-pokemon-lottery-list, .ap-pokemon-closed-lotteries { display: grid; gap: 9px; }
.ap-pokemon-closed-lotteries { margin-top: 9px; }
.ap-pokemon-lottery-card {
	padding: 14px;
	border-radius: 11px;
	background: #fff;
	box-shadow: inset 3px 0 0 var(--ap-pokemon-closed), 0 1px 0 var(--ap-pokemon-line);
}
.ap-pokemon-lottery-card.ap-pokemon-status-open { box-shadow: inset 3px 0 0 var(--ap-pokemon-open), 0 1px 0 var(--ap-pokemon-line); }
.ap-pokemon-lottery-card.ap-pokemon-status-upcoming { box-shadow: inset 3px 0 0 var(--ap-pokemon-upcoming), 0 1px 0 var(--ap-pokemon-line); }
.ap-pokemon-card-top { display: flex; align-items: start; justify-content: space-between; gap: 10px; }
.ap-pokemon-card-top h4 { min-width: 0; margin: 0; overflow-wrap: anywhere; color: var(--ap-pokemon-ink); font-size: 16px; line-height: 1.4; }
.ap-pokemon-badge { flex: 0 0 auto; padding: 3px 7px; border-radius: 999px; font-size: 11px; font-weight: 800; line-height: 1.35; }
.ap-pokemon-badge-open { color: var(--ap-pokemon-open); background: var(--ap-pokemon-open-soft); }
.ap-pokemon-badge-upcoming { color: var(--ap-pokemon-upcoming); background: var(--ap-pokemon-upcoming-soft); }
.ap-pokemon-badge-closed { color: var(--ap-pokemon-closed); background: #f0f1f4; }
.ap-pokemon-lottery-meta { display: flex; align-items: end; justify-content: space-between; gap: 10px; margin-top: 10px; }
.ap-pokemon-deadline { margin: 0; color: var(--ap-pokemon-muted); font-size: 11px; }
.ap-pokemon-deadline span { display: block; }
.ap-pokemon-deadline strong { display: block; color: var(--ap-pokemon-ink); font-size: 15px; line-height: 1.45; }
.ap-pokemon-countdown { flex: 0 0 auto; margin: 0; color: var(--ap-pokemon-primary); font-size: 12px; font-weight: 800; }
.ap-pokemon-memo { margin: 9px 0 0; color: var(--ap-pokemon-muted); font-size: 12px; }
.ap-pokemon-actions { display: flex; flex-wrap: wrap; align-items: center; gap: 6px 14px; margin-top: 12px; }
.ap-pokemon-button {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	min-height: 44px;
	padding: 9px 14px;
	border-radius: 9px;
	color: #fff !important;
	background: var(--ap-pokemon-primary);
	font-size: 13px;
	font-weight: 800;
	text-decoration: none !important;
}
.ap-pokemon-button:hover { color: #fff !important; opacity: .9; }
.ap-pokemon-lottery-source, .ap-pokemon-source-link {
	display: inline-flex;
	align-items: center;
	min-height: 44px;
	color: var(--ap-pokemon-primary) !important;
	font-size: 12px;
	font-weight: 800;
	text-decoration: none !important;
}
.ap-pokemon-lottery-source span { margin-left: 3px; }
.ap-pokemon-checked { margin: 4px 0 0; color: #a0a3ae; font-size: 10px; }
.ap-pokemon-closed-toggle {
	display: flex;
	align-items: center;
	justify-content: center;
	width: 100%;
	min-height: 44px;
	margin-top: 10px;
	padding: 8px 12px;
	border: 0;
	border-radius: 9px;
	color: var(--ap-pokemon-closed);
	background: #f5f5f7;
	font: inherit;
	font-size: 12px;
	font-weight: 800;
	cursor: pointer;
}
.ap-pokemon-closed-toggle::after { margin-left: 7px; content: "⌄"; font-size: 16px; }
.ap-pokemon-closed-toggle-expanded::after { transform: rotate(180deg); }
.ap-pokemon-card-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 9px; margin-top: 15px; }
.ap-pokemon-hit-card {
	position: relative;
	display: flex;
	min-width: 0;
	flex-direction: column;
	overflow: hidden;
	border-radius: 11px;
	background: #fff;
	box-shadow: 0 1px 0 var(--ap-pokemon-line);
}
.ap-pokemon-hit-card > img, .ap-pokemon-card-placeholder { display: block; width: 100%; height: auto; aspect-ratio: 2 / 3; object-fit: contain; background: #f8f8fa; }
.ap-pokemon-card-placeholder { position: relative; }
.ap-pokemon-card-placeholder::after { position: absolute; top: 50%; left: 50%; width: 20px; height: 1px; transform: translate(-50%, -50%); background: #d8d9e0; content: ""; }
.ap-pokemon-rank {
	position: absolute;
	z-index: 1;
	top: 7px;
	left: 7px;
	display: inline-flex;
	align-items: baseline;
	min-width: 32px;
	padding: 4px 6px;
	border-radius: 7px;
	color: #fff;
	background: rgba(32, 33, 43, .88);
	font-size: 15px;
	font-weight: 900;
	line-height: 1;
}
.ap-pokemon-rank small { margin-left: 1px; font-size: 9px; }
.ap-pokemon-hit-card-body { display: flex; min-width: 0; flex: 1; flex-direction: column; padding: 10px; }
.ap-pokemon-hit-card h4 { margin: 0; overflow-wrap: anywhere; color: var(--ap-pokemon-ink); font-size: 13px; line-height: 1.45; }
.ap-pokemon-rarity { margin: 3px 0 0; color: var(--ap-pokemon-primary); font-size: 11px; font-weight: 800; }
.ap-pokemon-price { margin: auto 0 5px; padding-top: 9px; color: var(--ap-pokemon-muted); font-size: 10px; }
.ap-pokemon-price strong { display: block; color: #d64a35; font-size: 17px; letter-spacing: -.02em; line-height: 1.3; }
.ap-pokemon-hit-card .ap-pokemon-source-link { min-height: 31px; font-size: 11px; }
.ap-pokemon-hit-card-featured { display: grid; grid-template-columns: minmax(96px, 40%) minmax(0, 1fr); grid-column: 1 / -1; }
.ap-pokemon-hit-card-featured > img, .ap-pokemon-hit-card-featured .ap-pokemon-card-placeholder { height: auto; min-height: 0; }
.ap-pokemon-hit-card-featured .ap-pokemon-hit-card-body { padding: 13px; }
.ap-pokemon-hit-card-featured h4 { font-size: 17px; }
.ap-pokemon-hit-card-featured .ap-pokemon-rarity { font-size: 12px; }
.ap-pokemon-hit-card-featured .ap-pokemon-price strong { font-size: 22px; }
.ap-pokemon-hit-card-featured .ap-pokemon-rank { top: 10px; left: 10px; min-width: 42px; padding: 6px 8px; font-size: 21px; }
.ap-pokemon-product-info { padding-top: 14px; padding-bottom: 14px; }
.ap-pokemon-product-info dl { margin: 7px 0 0; }
.ap-pokemon-product-info dl div { display: grid; grid-template-columns: 70px minmax(0, 1fr); gap: 9px; padding: 6px 0; border-top: 1px solid var(--ap-pokemon-line); }
.ap-pokemon-product-info dt { color: var(--ap-pokemon-muted); font-size: 12px; }
.ap-pokemon-product-info dd { min-width: 0; margin: 0; overflow-wrap: anywhere; color: var(--ap-pokemon-ink); font-size: 13px; font-weight: 700; }
.ap-pokemon-product-info dd a { color: var(--ap-pokemon-primary) !important; text-decoration: none !important; }
.ap-pokemon-empty { margin: 14px 0 0; color: var(--ap-pokemon-muted); font-size: 13px; }
.ap-pokemon-inclusion-grid { display: grid; grid-template-columns: minmax(0, 1fr); gap: 1px; margin-top: 9px; overflow: hidden; border: 1px solid var(--ap-pokemon-line); border-radius: 11px; background: var(--ap-pokemon-line); }
.ap-pokemon-rarity-group { margin-top: 20px; }
.ap-pokemon-rarity-group:first-of-type { margin-top: 14px; }
.ap-pokemon-rarity-group > h3 { margin: 0; color: var(--ap-pokemon-ink); font-size: 14px; line-height: 1.4; }
.ap-pokemon-inclusion-card { min-width: 0; border-radius: 0; background: #fff; box-shadow: none; }
.ap-pokemon-inclusion-card-body { min-width: 0; padding: 10px 12px; }
.ap-pokemon-card-name { margin: 0; overflow-wrap: anywhere; color: var(--ap-pokemon-ink); font-size: 14px; font-weight: 700; line-height: 1.45; }
.ap-pokemon-card-meta { display: flex; flex-wrap: wrap; align-items: baseline; gap: 2px 8px; margin-top: 3px; color: var(--ap-pokemon-muted); font-size: 11px; line-height: 1.45; overflow-wrap: anywhere; }
.ap-pokemon-card-meta .ap-pokemon-rarity { margin: 0; color: var(--ap-pokemon-primary); font-weight: 700; }
.ap-pokemon-card-price { color: var(--ap-pokemon-muted); font-size: 11px; white-space: normal; }
.ap-pokemon-card-price strong { color: var(--ap-pokemon-ink); font-size: inherit; }
.ap-pokemon-card-price-buy strong { color: #32644c; }
.ap-pokemon-card-price-rakuten span { color: #9b5b00; font-weight: 700; }
.ap-pokemon-card-price-rakuten strong { color: #a14d00; }
.ap-pokemon-rakuten-card-link { color: inherit; text-decoration: none; }
.ap-pokemon-rakuten-card-link:hover { color: var(--ap-pokemon-primary); text-decoration: underline; }
.ap-pokemon-archive-main { min-width: 0; }
.ap-pokemon-archive-list { display: grid; gap: 8px; }
.ap-pokemon-archive-item { display: flex; min-height: 72px; align-items: center; gap: 10px; padding: 8px; border-radius: 11px; background: #fff; box-shadow: 0 1px 0 var(--ap-pokemon-line); }
.ap-pokemon-archive-thumb { display: block; flex: 0 0 56px; width: 56px; height: 56px; overflow: hidden; border-radius: 8px; background: #f1f1f5; }
.ap-pokemon-archive-thumb img { display: block; width: 100%; height: 100%; object-fit: contain; }
.ap-pokemon-archive-item-main { display: flex; flex: 1; min-width: 0; align-items: center; justify-content: space-between; gap: 12px; padding: 6px 8px; color: var(--ap-pokemon-ink); text-decoration: none; }
.ap-pokemon-archive-item-main:hover { color: var(--ap-pokemon-primary); }
.ap-pokemon-archive-item strong { overflow-wrap: anywhere; }
.ap-pokemon-archive-item span { flex: 0 0 auto; color: var(--ap-pokemon-muted); font-size: 12px; }
.ap-pokemon-portal { margin-top: 0; }
.ap-pokemon-portal-section { margin-top: 12px; }
.ap-pokemon-portal-list { display: grid; gap: 8px; margin-top: 13px; }
.ap-pokemon-portal-item { display: flex; align-items: center; min-width: 0; gap: 10px; padding: 8px; border-radius: 11px; background: #fff; box-shadow: 0 1px 0 var(--ap-pokemon-line); }
.ap-pokemon-portal-image { display: block; flex: 0 0 72px; width: 72px; height: 72px; overflow: hidden; border-radius: 8px; background: #f1f1f5; }
.ap-pokemon-portal-image img { display: block; width: 100%; height: 100%; object-fit: contain; }
.ap-pokemon-portal-item-main { min-width: 0; }
.ap-pokemon-portal-item-main a { color: var(--ap-pokemon-ink); text-decoration: none; }
.ap-pokemon-portal-item-main a:hover { color: var(--ap-pokemon-primary); text-decoration: underline; }
.ap-pokemon-portal-item-main strong { display: block; overflow-wrap: anywhere; font-size: 15px; line-height: 1.4; }
.ap-pokemon-portal-item-main p { margin: 3px 0 0; color: var(--ap-pokemon-muted); font-size: 12px; }
.ap-pokemon-portal-archive p { margin: 10px 0 0; }
.ap-pokemon-portal-archive a { color: var(--ap-pokemon-primary); font-weight: 700; text-decoration: none; }
.ap-pokemon-card-number { color: var(--ap-pokemon-muted); }
.ap-pokemon-card-sources { margin-top: 18px; padding-top: 13px; border-top: 1px solid var(--ap-pokemon-line); }
.ap-pokemon-card-sources + .ap-pokemon-card-sources { margin-top: 12px; }
.ap-pokemon-card-sources h4 { margin: 0; color: var(--ap-pokemon-muted); font-size: 12px; font-weight: 700; }
.ap-pokemon-card-sources ul { display: grid; gap: 4px; margin: 7px 0 0; padding: 0; list-style: none; }
.ap-pokemon-card-sources li { min-width: 0; color: var(--ap-pokemon-muted); font-size: 11px; overflow-wrap: anywhere; }
.ap-pokemon-card-sources li::before { margin-right: 5px; content: '・'; }
.ap-pokemon-card-sources a { color: var(--ap-pokemon-muted); text-decoration: none; }
.ap-pokemon-card-sources a:hover { color: var(--ap-pokemon-primary); }
.ap-pokemon-affiliate-notice { margin: 12px 0 0; color: var(--ap-pokemon-muted); font-size: 10px; line-height: 1.5; }
.ap-pokemon-ranking-list { display: grid; gap: 1px; margin: 12px 0 0; padding: 0; overflow: hidden; list-style: none; border: 1px solid var(--ap-pokemon-line); border-radius: 11px; background: var(--ap-pokemon-line); }
.ap-pokemon-ranking-list li { display: flex; align-items: flex-start; gap: 9px; min-width: 0; padding: 10px 12px; background: #fff; }
.ap-pokemon-ranking-number { display: inline-flex; flex: 0 0 22px; align-items: center; justify-content: center; min-height: 22px; border-radius: 999px; color: #fff; background: var(--ap-pokemon-primary); font-size: 11px; font-weight: 800; }
.ap-pokemon-ranking-card { min-width: 0; }
.ap-pokemon-ranking-name { overflow-wrap: anywhere; color: var(--ap-pokemon-ink); font-size: 14px; font-weight: 800; line-height: 1.4; }
.ap-pokemon-ranking-name a, .ap-pokemon-ranking-meta a { color: inherit; text-decoration: none; }
.ap-pokemon-ranking-name a:hover, .ap-pokemon-ranking-meta a:hover { color: var(--ap-pokemon-primary); text-decoration: underline; }
.ap-pokemon-ranking-meta { display: flex; flex-wrap: wrap; gap: 3px 8px; margin-top: 2px; color: var(--ap-pokemon-muted); font-size: 11px; line-height: 1.45; }
.ap-pokemon-ranking-meta strong { color: #a14d00; }
@media (min-width: 640px) {
	.ap-pokemon-wrapper { margin-top: 30px; padding: 18px; }
	.ap-pokemon-hero, .ap-pokemon-section { padding-right: 22px; padding-left: 22px; }
	.ap-pokemon-card-grid { grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 12px; }
	.ap-pokemon-hit-card-featured { grid-column: span 2; grid-template-columns: minmax(160px, .9fr) minmax(0, 1fr); }
	.ap-pokemon-hit-card-featured > img, .ap-pokemon-hit-card-featured .ap-pokemon-card-placeholder { min-height: 0; }
	.ap-pokemon-hit-card-featured .ap-pokemon-hit-card-body { padding: 17px; }
	.ap-pokemon-inclusion-card-body { padding: 11px 14px; }
}

/* Set BOX listing price (v1.6.9). */
.ap-pokemon-box-price { margin-top: 12px; }
.ap-pokemon-box-price p { margin: 6px 0; }
.ap-pokemon-box-price strong { display: inline-block; font-size: 1.2em; }
.ap-pokemon-box-price-note { font-size: .85em; color: #555; }
.ap-pokemon-portal-item .ap-pokemon-box-price { font-size: .85em; }

.ap-pokemon-retail-grid { display:grid; grid-template-columns:repeat(auto-fit,minmax(min(100%,260px),1fr)); gap:16px; }
.ap-pokemon-retail-card { padding:18px; border:1px solid #ddd; border-radius:10px; background:#fff; overflow-wrap:anywhere; }
.ap-pokemon-retail-image { width:96px; height:96px; object-fit:contain; }
.ap-pokemon-retail-fallback { display:inline-flex; align-items:center; justify-content:center; background:#f1f3f5; color:#555; font-size:12px; }
.ap-pokemon-product-filters { display:flex; flex-wrap:wrap; gap:8px; margin-bottom:16px; }
.ap-pokemon-product-filters a { padding:4px 8px; border:1px solid #ddd; border-radius:4px; }
.ap-pokemon-product-filters a[aria-current] { font-weight:bold; background:#f1f3f5; }
