/* Contact persons UI — shared by listings/post.html (edit listing) and listings/admin.html (admin panel). */
:root{--cu-bg:#fff;--cu-soft:#F3F4F6;--cu-border:#E5E7EB;--cu-text:#374151;--cu-strong:#111827;--cu-muted:#6B7280;--cu-faint:#9CA3AF;
--cu-primary:#4A89DC;--cu-primary-hi:#3B76C8;--cu-primary-bg:#EEF4FD;--cu-danger:#DC2626;--cu-danger-bg:#FEF2F2;--cu-danger-bd:#FECACA;
--cu-dz-bg:#FFFCF6;--cu-dz-bd:#D6C7A8;--cu-shadow:0 1px 2px rgba(16,24,40,.06),0 4px 14px rgba(16,24,40,.06)}
html.admin-dark{--cu-bg:#171a24;--cu-soft:#222636;--cu-border:#2a2e3d;--cu-text:#c9cddb;--cu-strong:#f1f2f6;--cu-muted:#9aa0b4;--cu-faint:#6c7288;
--cu-primary:#6FA3EA;--cu-primary-hi:#5C92DB;--cu-primary-bg:rgba(111,163,234,.14);--cu-danger:#F87171;--cu-danger-bg:rgba(248,113,113,.12);--cu-danger-bd:rgba(248,113,113,.35);
--cu-dz-bg:#1d2130;--cu-dz-bd:#3a4056;--cu-shadow:0 1px 2px rgba(0,0,0,.4),0 4px 14px rgba(0,0,0,.35)}
.cp-lbl{font-size:.78rem;font-weight:600;color:var(--cu-text);margin:10px 0 6px}.cp-lbl span{font-weight:400;color:var(--cu-faint)}
.cp-dz{display:block;border:2px dashed var(--cu-dz-bd);border-radius:14px;background:var(--cu-dz-bg);text-align:center;padding:16px 12px;cursor:pointer;transition:all .15s;margin:0}
.cp-dz:hover,.cp-dz.dragover{border-color:var(--cu-primary);background:var(--cu-primary-bg)}
.cp-dz.dragover{transform:scale(1.01)}
.cp-dz>i{font-size:26px;color:var(--cu-faint);display:block;margin-bottom:4px}.cp-dz.dragover>i{color:var(--cu-primary)}
.cp-dz-t{font-size:.85rem;color:var(--cu-text)}.cp-dz-t span{color:var(--cu-primary);font-weight:600;text-decoration:underline}.cp-dz-t b{color:var(--cu-strong)}
.cp-dz-h{font-size:.7rem;color:var(--cu-faint);margin-top:2px}
.cp-prev{display:flex;flex-wrap:wrap;gap:8px;margin:8px 0}.cp-prev:empty{display:none}
.cp-prev .cp-doc-img{cursor:default}
.cp-btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;min-height:44px;padding:0 18px;border-radius:12px;border:1px solid transparent;font-weight:600;font-size:.92rem;cursor:pointer;transition:all .15s;line-height:1}
.cp-btn-primary{background:var(--cu-primary);color:#fff;box-shadow:0 2px 6px rgba(74,137,220,.35)}.cp-btn-primary:hover{background:var(--cu-primary-hi)}
.cp-btn-soft{background:var(--cu-soft);color:var(--cu-text);border-color:var(--cu-border)}.cp-btn-soft:hover{background:var(--cu-border)}
.cp-btn-danger{background:var(--cu-danger-bg);color:var(--cu-danger);border-color:var(--cu-danger-bd)}.cp-btn-danger:hover{background:var(--cu-danger-bd)}
.cp-btn-sm{min-height:38px;padding:0 14px;font-size:.84rem}
.cp-btn:disabled{opacity:.6;cursor:default}
.cp-chip{display:inline-flex;align-items:center;gap:6px;min-height:40px;padding:0 14px;border-radius:999px;border:1px solid var(--cu-border);background:var(--cu-bg);color:var(--cu-muted);font-size:.85rem;cursor:pointer;margin:0;user-select:none;transition:all .15s}
.cp-chip input{display:none}.cp-chip:has(input:checked){background:var(--cu-primary-bg);border-color:var(--cu-primary);color:var(--cu-primary);font-weight:600}
.cp-prog{position:fixed;left:16px;right:16px;bottom:84px;z-index:4000;max-width:460px;margin:0 auto;background:var(--cu-bg);border:1px solid var(--cu-border);border-radius:14px;padding:10px 14px;box-shadow:0 8px 24px rgba(0,0,0,.18);display:none}
.cp-prog.on{display:block}.cp-prog-t{display:flex;justify-content:space-between;font-size:.78rem;color:var(--cu-text);margin-bottom:6px}
.cp-prog-track{height:6px;background:var(--cu-border);border-radius:3px;overflow:hidden}.cp-prog-fill{height:100%;width:0;background:var(--cu-primary);border-radius:3px;transition:width .15s}
.cp-docs{display:flex;flex-wrap:wrap;gap:8px;margin:8px 0}
.cp-doc{position:relative;width:76px}
.cp-doc-img{width:76px;height:76px;border-radius:10px;background:var(--cu-soft);border:1px solid var(--cu-border);overflow:hidden;display:flex;align-items:center;justify-content:center;color:var(--cu-faint);font-size:22px;cursor:pointer}
.cp-doc-img img{width:100%;height:100%;object-fit:cover}
.cp-doc-lbl{font-size:0.66rem;color:var(--cu-muted);text-align:center;margin-top:2px;line-height:1.1}
.cp-doc-x{position:absolute;top:-6px;right:-6px;width:22px;height:22px;border-radius:50%;border:1px solid var(--cu-danger-bd);background:var(--cu-bg);color:var(--cu-danger);font-size:11px;padding:0;display:flex;align-items:center;justify-content:center;cursor:pointer}
.cp-lightbox{position:fixed;inset:0;z-index:5000;background:rgba(15,23,42,.92);display:flex;align-items:center;justify-content:center;padding:16px}
.cp-lightbox img{max-width:100%;max-height:100%;object-fit:contain;border-radius:8px}
.cp-lb-msg{color:#fff;font-size:.85rem}
.cp-photo{width:52px;height:52px;border-radius:12px;background:var(--cu-soft);color:var(--cu-faint);display:flex;align-items:center;justify-content:center;flex-shrink:0;overflow:hidden;font-size:20px}
.cp-photo img{width:100%;height:100%;object-fit:cover}
.cp-icon-btn{width:36px;height:36px;border-radius:50%;border:1px solid var(--cu-border);background:var(--cu-soft);color:var(--cu-muted);display:inline-flex;align-items:center;justify-content:center;font-size:14px;padding:0;cursor:pointer;transition:background .15s,color .15s,border-color .15s}
.cp-icon-btn:hover,.cp-icon-btn:focus-visible{background:var(--cu-primary-bg);color:var(--cu-primary);border-color:var(--cu-primary);outline:none}
.cp-icon-btn.cp-danger:hover,.cp-icon-btn.cp-danger:focus-visible{background:var(--cu-danger-bg);color:var(--cu-danger);border-color:var(--cu-danger-bd)}

/* ── Admin panel: modern contact cards, buttons, states ─────────────── */
.cu-btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;min-height:44px;padding:0 18px;border-radius:12px;border:1px solid transparent;font-weight:600;font-size:.9rem;cursor:pointer;transition:background .15s,box-shadow .15s,transform .05s;line-height:1;text-decoration:none;white-space:nowrap}
.cu-btn:active{transform:translateY(1px)}
.cu-btn:focus-visible,.cu-icon-btn:focus-visible,.cp-btn:focus-visible,.cp-icon-btn:focus-visible{outline:none;box-shadow:0 0 0 3px rgba(74,137,220,.35)}
.cu-btn-primary{background:var(--cu-primary);color:#fff;box-shadow:0 2px 6px rgba(74,137,220,.35)}.cu-btn-primary:hover{background:var(--cu-primary-hi);color:#fff}
.cu-btn-soft{background:var(--cu-soft);color:var(--cu-text);border-color:var(--cu-border)}.cu-btn-soft:hover{background:var(--cu-border)}
.cu-btn-danger{background:var(--cu-danger-bg);color:var(--cu-danger);border-color:var(--cu-danger-bd)}.cu-btn-danger:hover{background:var(--cu-danger-bd)}
.cu-btn-ghost{background:transparent;color:var(--cu-primary)}.cu-btn-ghost:hover{background:var(--cu-primary-bg)}
.cu-btn-sm{min-height:38px;padding:0 14px;font-size:.82rem}.cu-btn-xs{min-height:30px;padding:0 10px;font-size:.76rem;border-radius:9px}
.cu-btn:disabled{opacity:.55;cursor:default;box-shadow:none}
.cu-icon-btn{width:36px;height:36px;border-radius:50%;border:1px solid var(--cu-border);background:var(--cu-soft);color:var(--cu-muted);display:inline-flex;align-items:center;justify-content:center;font-size:14px;padding:0;cursor:pointer;transition:all .15s}
.cu-icon-btn:hover{background:var(--cu-primary-bg);color:var(--cu-primary);border-color:var(--cu-primary)}
.cu-icon-btn.cu-danger:hover{background:var(--cu-danger-bg);color:var(--cu-danger);border-color:var(--cu-danger-bd)}
.cu-toolbar{display:flex;flex-wrap:wrap;gap:10px;align-items:center;margin-bottom:12px}
.cu-search{position:relative;flex:1;min-width:220px}.cu-search i{position:absolute;left:14px;top:50%;transform:translateY(-50%);color:var(--cu-faint)}
.cu-search input{width:100%;height:46px;padding:0 14px 0 40px;border-radius:12px;border:1px solid var(--cu-border);background:var(--cu-bg);color:var(--cu-strong);font-size:16px;outline:none}
.cu-search input:focus{border-color:var(--cu-primary);box-shadow:0 0 0 3px rgba(74,137,220,.18)}
.cu-filters{display:flex;flex-wrap:wrap;gap:6px;margin-bottom:10px}
.cu-fchip{border:1px solid var(--cu-border);background:var(--cu-bg);color:var(--cu-text);border-radius:999px;padding:6px 13px;font-size:.78rem;font-weight:600;cursor:pointer;transition:all .15s}
.cu-fchip:hover{border-color:var(--cu-primary)}.cu-fchip.active{background:var(--cu-primary);border-color:var(--cu-primary);color:#fff}
.cu-count{font-size:.78rem;color:var(--cu-muted);margin:0 0 10px}
.cu-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(310px,1fr));gap:14px}
@media(max-width:640px){.cu-grid{grid-template-columns:1fr}}
.cu-card{background:var(--cu-bg);border:1px solid var(--cu-border);border-radius:16px;padding:14px;box-shadow:var(--cu-shadow);display:flex;flex-direction:column;gap:10px;transition:box-shadow .15s,border-color .15s}
.cu-card:hover{border-color:var(--cu-primary)}
.cu-card.card-flash{animation:cuFlash 1.8s ease}
@keyframes cuFlash{0%,60%{box-shadow:0 0 0 3px var(--cu-primary)}100%{box-shadow:var(--cu-shadow)}}
.cu-head{display:flex;gap:12px;align-items:flex-start}
.cu-av{width:56px;height:56px;border-radius:14px;background:var(--cu-primary-bg);color:var(--cu-primary);display:flex;align-items:center;justify-content:center;font-weight:700;font-size:1.15rem;flex-shrink:0;overflow:hidden}
.cu-av img{width:100%;height:100%;object-fit:cover}
.cu-name{font-weight:700;color:var(--cu-strong);font-size:1rem;line-height:1.2;word-break:break-word}
.cu-line{font-size:.82rem;color:var(--cu-muted);margin-top:3px;display:flex;align-items:center;gap:6px;word-break:break-all}
.cu-line a{color:inherit;text-decoration:none}.cu-line a:hover{color:var(--cu-primary)}
.cu-note{font-size:.76rem;color:var(--cu-muted);background:var(--cu-soft);border-radius:10px;padding:6px 10px}
.cu-badges{display:flex;flex-wrap:wrap;gap:6px}
.cu-badge{display:inline-flex;align-items:center;gap:5px;font-size:.7rem;font-weight:600;padding:3px 9px;border-radius:999px;background:var(--cu-soft);color:var(--cu-muted)}
.cu-badge.docs{background:var(--cu-primary-bg);color:var(--cu-primary)}.cu-badge.warn{background:rgba(243,156,18,.16);color:#B7791F}
.cu-props{display:flex;flex-wrap:wrap;gap:4px}
.cu-actions{display:flex;gap:6px;align-items:center;margin-top:auto;padding-top:10px;border-top:1px solid var(--cu-border)}
.cu-actions .grow{flex:1}
.cu-skel{height:150px;border-radius:16px;background:linear-gradient(90deg,var(--cu-soft) 25%,var(--cu-border) 37%,var(--cu-soft) 63%);background-size:400% 100%;animation:cuSkel 1.3s ease infinite}
@keyframes cuSkel{0%{background-position:100% 50%}100%{background-position:0 50%}}
.cu-empty{text-align:center;padding:44px 16px;color:var(--cu-muted)}.cu-empty i{font-size:38px;color:var(--cu-faint);display:block;margin-bottom:10px}
.cu-empty b{display:block;color:var(--cu-strong);font-size:1rem;margin-bottom:4px}
.cu-sheet label.cu-l{font-size:.78rem;font-weight:600;color:var(--cu-text);margin:10px 0 5px;display:block}
.cu-sheet input.form-control,.cu-sheet select.form-select,.cu-sheet textarea.form-control{font-size:16px;border-radius:12px}
.cu-sheet h6{color:var(--cu-strong)}
.cu-sec{border:1px solid var(--cu-border);border-radius:14px;padding:12px;margin:12px 0;background:var(--cu-bg)}
.cu-sec-t{font-size:.8rem;font-weight:700;color:var(--cu-strong);margin-bottom:8px;display:flex;align-items:center;gap:6px}
.cu-sec-t span{font-weight:400;color:var(--cu-faint)}
.cu-avs{width:20px;height:20px;border-radius:50%;object-fit:cover;vertical-align:middle;margin-right:3px}

/* ── Admin Listings cards ───────────────────────────────────────────── */
.ls-grid{grid-template-columns:repeat(auto-fill,minmax(340px,1fr))}
@media(max-width:640px){.ls-grid{grid-template-columns:1fr}}
.ls-card{padding:0;overflow:hidden;gap:0}
.ls-cover{position:relative;aspect-ratio:16/9;background:var(--cu-soft);display:block;overflow:hidden}
.ls-cover img{width:100%;height:100%;object-fit:cover;display:block}
.ls-cover .ls-noimg{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;color:var(--cu-faint);font-size:34px}
.ls-ov{position:absolute;left:10px;top:10px;display:flex;flex-wrap:wrap;gap:6px;max-width:calc(100% - 20px)}
.ls-ov .badge,.ls-ov .expiry-chip{box-shadow:0 1px 4px rgba(0,0,0,.25)}
.ls-id{position:absolute;right:10px;top:10px;background:rgba(15,23,42,.7);color:#fff;font-size:.7rem;font-weight:700;padding:3px 9px;border-radius:999px}
.ls-imgs{position:absolute;right:10px;bottom:10px;background:rgba(15,23,42,.7);color:#fff;font-size:.7rem;padding:3px 9px;border-radius:999px}
.ls-body{flex:1;padding:12px 14px;display:flex;flex-direction:column;gap:8px}
.ls-title{font-weight:700;color:var(--cu-strong);font-size:.98rem;line-height:1.25;text-decoration:none;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
.ls-title:hover{color:var(--cu-primary)}
.ls-price{font-weight:800;color:var(--cu-primary);font-size:1.05rem}
.ls-price small{font-weight:500;color:var(--cu-muted);font-size:.72rem}
.ls-meta{display:flex;flex-wrap:wrap;gap:4px 12px;font-size:.78rem;color:var(--cu-muted)}
.ls-meta i{margin-right:4px;color:var(--cu-faint)}
.ls-owner{font-size:.8rem;color:var(--cu-text);display:flex;flex-wrap:wrap;gap:6px;align-items:center}
.ls-priv{font-size:.74rem;color:var(--cu-muted);background:var(--cu-soft);border-radius:10px;padding:6px 10px;white-space:pre-line;word-break:break-word;max-height:4.2em;overflow:hidden}
.ls-foot{display:flex;flex-wrap:wrap;gap:8px;align-items:center;padding:10px 14px;border-top:1px solid var(--cu-border);background:var(--cu-bg)}
.ls-foot select{flex:1;min-width:130px;height:38px;border-radius:10px;font-size:.84rem}
.ls-foot .cu-icon-btn{width:38px;height:38px}
.ls-stat{display:inline-flex;align-items:center;gap:5px;font-size:.76rem;color:var(--cu-muted)}
