/* Project catalog: details, price lists, import and public project pages */
.pc-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(300px, 1fr)); gap: 1rem; }
.pc-card { padding: 0; overflow: hidden; display: flex; flex-direction: column; }
.pc-card-media { position: relative; height: 170px; background: linear-gradient(135deg, var(--surface-2, #162236), #0b1424); display: flex; align-items: center; justify-content: center; color: var(--muted, #94a3b8); font-size: 2.2rem; }
.pc-card-media img { width: 100%; height: 100%; object-fit: cover; display: block; }
.pc-card-media .pc-flags { position: absolute; top: .6rem; inset-inline-start: .6rem; display: flex; gap: .35rem; flex-wrap: wrap; }
.pc-card-body { padding: 1rem 1.1rem 1.1rem; display: flex; flex-direction: column; gap: .45rem; flex: 1; }
.pc-card-body h3 { margin: 0; font-size: 1.05rem; }
.pc-price { font-weight: 700; color: var(--accent-gold, #d4a853); font-size: 1.05rem; }
.pc-price small { font-weight: 400; color: var(--muted, #94a3b8); font-size: .78rem; }
.pc-meta { display: flex; flex-wrap: wrap; gap: .35rem .9rem; font-size: .85rem; color: var(--muted, #94a3b8); }
.pc-actions { margin-top: auto; display: flex; gap: .5rem; flex-wrap: wrap; padding-top: .5rem; }
.pc-chip { display: inline-flex; align-items: center; gap: .3rem; padding: .2rem .6rem; border-radius: 999px; font-size: .75rem; background: rgba(20,184,166,.12); color: var(--text, #f1f5f9); border: 1px solid rgba(20,184,166,.25); }
.pc-chip-gold { background: rgba(212,168,83,.15); border-color: rgba(212,168,83,.35); }
.pc-chip-muted { background: rgba(148,163,184,.12); border-color: rgba(148,163,184,.25); }
.pc-chips { display: flex; flex-wrap: wrap; gap: .4rem; }
.pc-toolbar-extra { display: flex; gap: .5rem; flex-wrap: wrap; justify-content: flex-end; margin: -.25rem 0 1rem; }

.pc-facts { display: grid; grid-template-columns: repeat(auto-fill, minmax(190px, 1fr)); gap: .9rem 1.25rem; }
.pc-facts > div { display: flex; flex-direction: column; gap: .15rem; }
.pc-facts dt, .pc-facts .pc-k { color: var(--muted, #94a3b8); font-size: .8rem; }
.pc-facts dd, .pc-facts .pc-v { margin: 0; font-weight: 600; word-break: break-word; }
.pc-section { margin-bottom: 1rem; }
.pc-section h3 { margin: 0 0 .9rem; font-size: 1.05rem; }
.pc-hero { display: grid; grid-template-columns: minmax(0, 2fr) minmax(0, 1fr); gap: 1rem; margin-bottom: 1rem; }
@media (max-width: 900px) { .pc-hero { grid-template-columns: 1fr; } }
.pc-cover { border-radius: var(--radius, 14px); overflow: hidden; background: var(--surface-2, #162236); min-height: 220px; display: flex; align-items: center; justify-content: center; }
.pc-cover img { width: 100%; height: 100%; max-height: 380px; object-fit: cover; display: block; }
.pc-pricebox { display: flex; flex-direction: column; gap: .6rem; }
.pc-pricebox .pc-big { font-size: 1.5rem; font-weight: 800; color: var(--accent-gold, #d4a853); line-height: 1.2; }
.pc-gallery { display: grid; grid-template-columns: repeat(auto-fill, minmax(140px, 1fr)); gap: .6rem; }
.pc-gallery a, .pc-gallery label { display: block; border-radius: 10px; overflow: hidden; aspect-ratio: 4 / 3; background: var(--surface-2, #162236); position: relative; }
.pc-gallery img { width: 100%; height: 100%; object-fit: cover; display: block; }
.pc-gallery label input { position: absolute; top: .4rem; inset-inline-start: .4rem; width: 18px; height: 18px; }
.pc-logo { width: 46px; height: 46px; border-radius: 10px; object-fit: contain; background: #fff; padding: 3px; }
.pc-dev { display: flex; align-items: center; gap: .6rem; }
.pc-plans { display: grid; grid-template-columns: repeat(auto-fill, minmax(200px, 1fr)); gap: .75rem; }
.pc-plan { border: 1px solid var(--border); border-radius: 12px; padding: .85rem 1rem; background: var(--surface-2, #162236); }
.pc-plan strong { display: block; margin-bottom: .35rem; }
.pc-plan .pc-plan-big { font-size: 1.25rem; font-weight: 800; color: var(--primary, #14b8a6); }
.pc-table-wrap { overflow-x: auto; }
.pc-table { width: 100%; border-collapse: collapse; font-size: .9rem; }
.pc-table th, .pc-table td { padding: .55rem .6rem; border-bottom: 1px solid var(--border); text-align: start; vertical-align: top; }
.pc-table th { color: var(--muted, #94a3b8); font-weight: 600; white-space: nowrap; }
.pc-table input, .pc-table select { width: 100%; min-width: 80px; padding: .45rem .5rem; border-radius: 6px; border: 1px solid var(--border); background: var(--bg); color: var(--text); font-family: inherit; }
.pc-docs { display: flex; flex-wrap: wrap; gap: .5rem; }

.pc-form-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(210px, 1fr)); gap: .75rem; }
.pc-amenities { display: grid; grid-template-columns: repeat(auto-fill, minmax(170px, 1fr)); gap: .4rem .75rem; margin-bottom: .75rem; }
.pc-amenities label { display: flex; align-items: center; gap: .45rem; font-size: .9rem; cursor: pointer; color: var(--text); margin: 0; }
.pc-amenities input { width: auto; }
.pc-media-current { display: flex; align-items: center; gap: .6rem; margin-bottom: .4rem; font-size: .85rem; flex-wrap: wrap; }
.pc-media-current img { height: 48px; border-radius: 6px; }
.pc-fieldset { border: 1px solid var(--border); border-radius: 12px; padding: 1rem; margin: 1rem 0; }
.pc-fieldset > legend { padding: 0 .5rem; font-weight: 700; }
.pc-check { display: flex; align-items: center; gap: .5rem; margin: .25rem 0; cursor: pointer; }
.pc-check input { width: auto; }

.pc-stats { display: flex; flex-wrap: wrap; gap: .75rem; margin-bottom: 1rem; }
.pc-stat { flex: 1 1 140px; border: 1px solid var(--border); border-radius: 12px; padding: .75rem 1rem; background: var(--surface); }
.pc-stat b { display: block; font-size: 1.5rem; }
.pc-row-create { border-inline-start: 3px solid var(--success, #10b981); }
.pc-row-update { border-inline-start: 3px solid var(--info, #06b6d4); }
.pc-row-skip, .pc-row-failed { border-inline-start: 3px solid var(--danger, #ef4444); }
.pc-msgs { margin: .25rem 0 0; padding-inline-start: 1.1rem; font-size: .8rem; color: var(--muted, #94a3b8); }
.pc-msgs .pc-err { color: var(--danger, #ef4444); }
.pc-mapping { display: grid; grid-template-columns: repeat(auto-fill, minmax(230px, 1fr)); gap: .5rem .9rem; }
.pc-mapping label { font-size: .8rem; color: var(--muted, #94a3b8); display: block; margin-bottom: .15rem; }
.pc-mapping select { width: 100%; padding: .45rem; border-radius: 6px; border: 1px solid var(--border); background: var(--bg); color: var(--text); font-family: inherit; }
.pc-mapping .pc-unmapped select { border-color: rgba(245,158,11,.6); }
.pc-cols code { font-size: .8rem; }

/* Public (landing) project page */
.pc-public { padding: 2rem 0 3rem; }
.pc-public .card { background: var(--surface, #0f1a2e); }
.pc-public-head { display: flex; justify-content: space-between; gap: 1rem; flex-wrap: wrap; align-items: flex-start; margin-bottom: 1rem; }
.pc-public-head h1 { font-size: 1.8rem; margin: 0 0 .3rem; }
.project-card-link { color: inherit; text-decoration: none; display: block; }
.project-price-label { display: block; font-size: .75rem; color: var(--muted, #94a3b8); font-weight: 400; }
.project-plan-hint { font-size: .8rem; color: var(--primary, #14b8a6); margin: .15rem 0 .35rem; }
