.ppc { --cream:#f4f1ec; --card:#fff; --ink:#2b2620; --muted:#8a8175; --line:#e2dccf; --clay:#b5654a; --clay-soft:#f0e3dc; --clay-tint:#faf4f0; max-width:560px; margin:1.5rem 0; color:var(--ink); }
.ppc * { box-sizing:border-box; }
.ppc-section { margin-bottom:1.6rem; }
.ppc-head { display:flex; justify-content:space-between; align-items:baseline; margin-bottom:0.6rem; }
.ppc-label { font-size:0.72rem; letter-spacing:0.14em; text-transform:uppercase; color:var(--muted); font-weight:600; }
.ppc-label.sub { opacity:0.7; }
.ppc-label-value { font-size:0.85rem; color:var(--ink); }

.ppc-swatches { display:flex; gap:0.7rem; flex-wrap:wrap; }
.ppc-swatch { cursor:pointer; line-height:0; }
.ppc-swatch input { position:absolute; opacity:0; width:0; height:0; }
.ppc-swatch-dot { display:inline-block; width:2.1rem; height:2.1rem; border-radius:50%; border:1px solid var(--line); transition:box-shadow .12s, transform .12s; }
.ppc-swatch input:checked + .ppc-swatch-dot { box-shadow:0 0 0 2px var(--cream), 0 0 0 3.5px var(--clay); transform:scale(1.05); }
.ppc-swatch input:focus-visible + .ppc-swatch-dot { outline:2px solid var(--clay); outline-offset:3px; }

.ppc-sizes { display:grid; grid-template-columns:repeat(7,1fr); gap:0.4rem; }
.ppc-size-cell { border:1px solid var(--line); border-radius:8px; overflow:hidden; text-align:center; background:var(--card); }
.ppc-size-name { display:block; font-size:0.68rem; font-weight:600; padding:0.3rem 0; background:var(--clay-tint); }
.ppc-size-qty { width:100%; border:0; padding:0.5rem 0.1rem; text-align:center; font:inherit; font-size:1rem; background:transparent; -moz-appearance:textfield; }
.ppc-size-qty:focus { outline:2px solid var(--clay); outline-offset:-2px; }
.ppc-run-meta { display:flex; justify-content:space-between; margin-top:0.6rem; font-size:0.85rem; }
.ppc-nudge { color:var(--clay); }

.ppc-cards { display:grid; grid-template-columns:1fr 1fr; gap:0.6rem; }
.ppc-deco-card { display:block; border:1px solid var(--line); border-radius:12px; padding:0.8rem 0.9rem; cursor:pointer; background:var(--card); transition:border-color .12s, background .12s; position:relative; }
.ppc-deco-card input { position:absolute; opacity:0; }
.ppc-deco-card:has(input:checked) { border-color:var(--clay); background:var(--clay-tint); }
.ppc-deco-name { font-weight:600; font-size:0.9rem; display:block; }
.ppc-deco-tag { font-size:0.72rem; color:var(--clay); font-weight:600; }

.ppc-places { display:grid; grid-template-columns:1fr 1fr; gap:0.6rem; }
.ppc-place-card { border:1px solid var(--line); border-radius:12px; padding:0.8rem 0.9rem; background:var(--card); }
.ppc-place-head { display:flex; align-items:center; gap:0.5rem; }
.ppc-place-head input[type="checkbox"] { width:1rem; height:1rem; accent-color:var(--clay); }
.ppc-place-name { font-weight:600; font-size:0.88rem; }
.ppc-place-price { margin-left:auto; font-size:0.78rem; color:var(--clay); font-weight:600; }
.ppc-place-card[data-free="1"] .ppc-place-price { color:var(--muted); }
.ppc-place-body { display:none; margin-top:0.5rem; }
.ppc-place-card.on .ppc-place-body { display:block; }
.ppc-file { display:inline-block !important; pointer-events:auto !important; opacity:1 !important; width:100%; font-size:0.78rem; margin-bottom:0.4rem; cursor:pointer; }
.ppc-dims { display:flex; gap:0.4rem; margin-bottom:0.4rem; }
.ppc-dims input { width:100%; padding:0.35rem; border:1px solid var(--line); border-radius:6px; font:inherit; font-size:0.82rem; }
.ppc-notes { width:100%; padding:0.4rem; border:1px solid var(--line); border-radius:6px; font:inherit; font-size:0.82rem; resize:vertical; }

.ppc-confirm { background:#2f6f4e; color:#fff; border-radius:10px; padding:0.9rem 1.1rem; font-size:0.9rem; font-weight:600; margin:0 0 0.8rem; display:none; clear:both; width:100%; }
.ppc-confirm.show { display:block; }
.ppc-summary { background:var(--card); border:1px solid var(--line); border-radius:12px; padding:1rem 1.2rem; margin:1.6rem 0 1rem; clear:both; width:100%; }
.ppc-sum-row { display:flex; justify-content:space-between; align-items:baseline; padding:0.25rem 0; }
.ppc-sum-total { font-size:1.3rem; border-top:1px solid var(--line); margin-top:0.5rem; padding-top:0.6rem; }
.ppc-sum-note { font-size:0.78rem; color:var(--muted); margin:0.4rem 0 0; }
.ppc-errors { color:#c0392b; font-size:0.85rem; margin-bottom:0.8rem; }

.ppc-btn-row { display:flex; gap:0.6rem; clear:both; width:100%; }
.ppc-add { flex:1; background:var(--clay) !important; color:#fff !important; border:0; border-radius:10px; padding:1rem; font-size:1rem; font-weight:600; cursor:pointer; }
.ppc-add:disabled { background:#cbb8af !important; cursor:not-allowed; }
.ppc-clear { background:transparent; color:var(--muted); border:1px solid var(--line); border-radius:10px; padding:1rem 1.1rem; font-size:0.85rem; font-weight:600; cursor:pointer; white-space:nowrap; }
.ppc-clear:hover { border-color:var(--clay); color:var(--clay); }

@media (max-width:480px){ .ppc-sizes{grid-template-columns:repeat(4,1fr);} .ppc-cards,.ppc-places{grid-template-columns:1fr;} }

/* 4.1.0 — stock-aware size grid */
.ppc-size-cell { position: relative; }
.ppc-size-cell.ppc-disabled { opacity: .45; }
.ppc-size-cell.ppc-disabled .ppc-size-qty { cursor: not-allowed; background: #f3f3f3; }
.ppc-size-stock { display: block; font-size: 11px; line-height: 1.3; color: #8a8a82; margin-top: 2px; min-height: 14px; }
.ppc-size-cell.ppc-disabled .ppc-size-stock { color: #b5654a; }
.ppc-deco-tag { font-size: 12px; color: #6a6a62; }
