/* DP Reviews — styles */

/* ── Variables ──────────────────────────────────────────────────────── */
:root {
    --dp-navy:     #0F2348;
    --dp-gold:     #C9A84C;
    --dp-green:    #1A7A5E;
    --dp-red:      #C8373A;
    --dp-dot-size: 14px;
    --dp-dot-gap:  5px;
    --dp-radius:   8px;
    --dp-border:   #e2e0d8;
    --dp-bg:       #fafaf8;
    --dp-text:     #1a1a18;
    --dp-muted:    #666;
}

/* ── Shared wrappers ────────────────────────────────────────────────── */
.dp-reviews-wrap { font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', sans-serif; color: var(--dp-text); max-width: 780px; }

/* ── Dots ───────────────────────────────────────────────────────────── */
.dp-dot {
    display:inline-block;
    width: var(--dp-dot-size);
    height: var(--dp-dot-size);
    border-radius: 50%;
    border: 1.5px solid var(--dp-navy);
    background: transparent;
    margin-right: var(--dp-dot-gap);
    vertical-align: middle;
    transition: background .12s, border-color .12s;
}
.dp-dot.filled       { background: var(--dp-navy); }
.dp-dot.hover        { background: var(--dp-gold); border-color: var(--dp-gold); }
.dp-dot-display      { display: flex; align-items: center; gap: 4px; margin-bottom: 4px; }
.dp-dim-small        { font-size: 11px; color: var(--dp-muted); min-width: 120px; }
.dp-dots-mini .dp-dot{ width:10px;height:10px; }

/* ── Dot selector (form) ─────────────────────────────────────────────── */
.dp-ratings-field  { margin-bottom: 18px; }
.dp-rating-row     { display:flex; align-items:center; gap:14px; margin-bottom: 10px; }
.dp-dim-label      { font-size:13px; font-weight:600; color:var(--dp-navy); min-width:140px; }
.dp-dot-selector   { display:flex; align-items:center; gap:5px; }
.dp-dot-btn {
    appearance:none; -webkit-appearance:none;
    width:18px; height:18px; border-radius:50%;
    border: 2px solid var(--dp-navy);
    background:transparent; cursor:pointer;
    padding:0; transition: background .12s, border-color .12s, transform .1s;
}
.dp-dot-btn:hover                 { background:var(--dp-gold); border-color:var(--dp-gold); transform:scale(1.15); }
.dp-dot-btn.selected              { background:var(--dp-navy); border-color:var(--dp-navy); }
.dp-dot-label      { font-size:11px; color:var(--dp-muted); margin-left:8px; min-width:60px; }

/* ── Dimension guidance tooltip ─────────────────────────────────────── */
.dp-dim-help {
    position:relative; display:inline-flex; align-items:center;
    margin-left:6px; vertical-align:middle; cursor:default;
}
.dp-dim-help-icon {
    display:inline-flex; align-items:center; justify-content:center;
    width:16px; height:16px; border-radius:50%;
    border:1.5px solid var(--dp-navy); color:var(--dp-navy);
    font-size:10px; font-weight:700; line-height:1;
    user-select:none; cursor:pointer;
    transition: background .12s, color .12s;
}
.dp-dim-help:hover .dp-dim-help-icon,
.dp-dim-help:focus .dp-dim-help-icon {
    background:var(--dp-navy); color:#fff;
}
.dp-dim-tooltip {
    display:none; position:absolute; left:calc(100% + 8px); top:50%;
    transform:translateY(-50%);
    background:#fff; border:1px solid var(--dp-border);
    border-radius:var(--dp-radius); box-shadow:0 4px 14px rgba(0,0,0,.12);
    padding:12px 14px; width:260px; z-index:100;
    font-size:12px; line-height:1.55; color:var(--dp-text);
    pointer-events:none;
}
.dp-dim-tooltip strong {
    display:block; margin-bottom:6px; font-size:11px;
    text-transform:uppercase; letter-spacing:.04em; color:var(--dp-navy);
}
.dp-dim-help:hover .dp-dim-tooltip,
.dp-dim-help:focus .dp-dim-tooltip { display:block; }

/* ── Form ────────────────────────────────────────────────────────────── */
.dp-form-header        { margin-bottom:20px; }
.dp-form-header h3     { font-size:20px; font-weight:700; color:var(--dp-navy); margin:0 0 4px; }
.dp-form-sub           { color:var(--dp-muted); font-size:13px; margin:0; }
.dp-field              { margin-bottom:16px; }
.dp-field label        { display:block; font-size:13px; font-weight:600; color:var(--dp-navy); margin-bottom:5px; }
.dp-field input[type=text],
.dp-field input[type=email],
.dp-field textarea,
.dp-field select {
    width:100%; padding:9px 12px; font-size:14px;
    border:1.5px solid var(--dp-border); border-radius:var(--dp-radius);
    background:#fff; color:var(--dp-text);
    transition:border-color .15s;
    box-sizing:border-box;
}
.dp-field input:focus,
.dp-field textarea:focus,
.dp-field select:focus { border-color:var(--dp-navy); outline:none; }
.dp-req   { color:var(--dp-red); }
.dp-optional { font-weight:400; color:var(--dp-muted); font-size:11px; }
.dp-hint  { display:block; color:var(--dp-muted); font-size:11px; margin-top:3px; font-weight:400; }
.dp-form-two-col { display:grid; grid-template-columns:1fr 1fr; gap:14px; }
@media(max-width:600px){ .dp-form-two-col{ grid-template-columns:1fr; } }

.dp-radio-inline { display:flex; gap:20px; margin-top:4px; }
.dp-radio-inline label { display:flex; align-items:center; gap:6px; font-size:14px; font-weight:400; color:var(--dp-text); cursor:pointer; }

.dp-npi-row { display:flex; align-items:center; gap:10px; }
.dp-npi-row input { max-width:200px; }
.dp-npi-status { font-size:12px; font-weight:600; }
.dp-npi-status.verified   { color:var(--dp-green); }
.dp-npi-status.unverified { color:var(--dp-red); }
.dp-npi-status.loading    { color:var(--dp-muted); }

/* Review form: locked NPI hint */
.dp-npi-hint-verified   { color:var(--dp-green); font-weight:600; }
.dp-npi-hint-unverified { color:var(--dp-red);   font-weight:600; }

/* ── [dp_npi_verify] widget ──────────────────────────────────────── */
.dp-npi-verify-wrap        { width:100%; }
.dp-npi-verify-inner       { background:var(--dp-bg); border:1px solid var(--dp-border); border-radius:var(--dp-radius); padding:28px 32px; }
.dp-npi-verify-title       { font-size:18px; font-weight:700; color:var(--dp-navy); margin:0 0 6px; }
.dp-npi-verify-sub         { font-size:13px; color:var(--dp-muted); margin:0 0 22px; line-height:1.55; }

/* State A: entry row */
.dp-npi-entry-row          { display:flex; gap:10px; align-items:center; flex-wrap:wrap; }
.dp-npi-input              { font-size:15px; padding:9px 12px; border:1px solid var(--dp-border); border-radius:var(--dp-radius); width:170px; letter-spacing:.08em; }
.dp-npi-input:focus        { outline:none; border-color:var(--dp-navy); box-shadow:0 0 0 2px rgba(15,35,72,.12); }
.dp-npi-live-status        { font-size:12px; font-weight:600; margin-top:8px; display:block; min-height:16px; }
.dp-npi-live-status.verified   { color:var(--dp-green); }
.dp-npi-live-status.unverified { color:var(--dp-red); }
.dp-npi-live-status.loading    { color:var(--dp-muted); }

/* State B: verified */
.dp-npi-verified-badge     { display:inline-flex; align-items:center; gap:8px; background:#e8f5ee; color:var(--dp-green); font-size:15px; font-weight:700; padding:9px 16px; border-radius:var(--dp-radius); margin-bottom:14px; }
.dp-npi-detail             { font-size:13px; color:var(--dp-text); margin:0 0 6px; }
.dp-npi-verify-note        { color:var(--dp-muted); font-size:12px; margin:10px 0 16px; }

/* State C: not verified */
.dp-npi-unverified-badge   { display:inline-flex; align-items:center; gap:8px; background:#fde8e8; color:var(--dp-red); font-size:15px; font-weight:700; padding:9px 16px; border-radius:var(--dp-radius); margin-bottom:14px; }
.dp-npi-unverified-actions { display:flex; gap:10px; flex-wrap:wrap; margin-top:14px; }

/* Shared widget message */
.dp-npi-msg                { margin-top:14px; padding:10px 14px; border-radius:var(--dp-radius); font-size:13px; font-weight:600; }
.dp-npi-msg.error          { background:#fde8e8; color:var(--dp-red); border:1px solid #f5c6c6; }
.dp-npi-msg.success        { background:#e8f5ee; color:var(--dp-green); border:1px solid #b2dfcc; }

.dp-custom-fields  { border-top:1px solid var(--dp-border); padding-top:14px; margin-top:4px; }
.dp-custom-fields h4 { font-size:14px; color:var(--dp-navy); margin:0 0 12px; }

.dp-form-footer    { margin-top:22px; }
.dp-btn-submit {
    background:var(--dp-navy); color:#fff;
    border:none; padding:11px 28px; font-size:15px; font-weight:600;
    border-radius:var(--dp-radius); cursor:pointer;
    transition:background .15s, transform .1s;
}
.dp-btn-submit:hover   { background:#1a3a6e; }
.dp-btn-submit:active  { transform:scale(.98); }
.dp-btn-submit:disabled{ opacity:.6; cursor:not-allowed; }

.dp-form-message { padding:12px 16px; border-radius:var(--dp-radius); margin-top:14px; font-size:14px; }
.dp-form-message.success { background:#e8f5ee; color:#1A7A5E; border:1px solid #a8ddc1; }
.dp-form-message.error   { background:#fdecea; color:#c8373a; border:1px solid #f5c5c6; }

/* ── Aggregate ──────────────────────────────────────────────────────── */
.dp-aggregate {
    background:var(--dp-bg); border:1px solid var(--dp-border);
    border-radius:var(--dp-radius); margin-bottom:24px;
    overflow:hidden;
}
.dp-agg-top {
    display:flex; gap:30px; align-items:center;
    padding:20px 24px;
}
.dp-agg-score   { text-align:center; flex-shrink:0; min-width:90px; }
.dp-agg-number  { display:block; font-size:52px; font-weight:700; color:var(--dp-navy); line-height:1; }
.dp-agg-outof   { display:block; font-size:12px; color:var(--dp-muted); margin:2px 0 6px; }
.dp-agg-dots    { margin-bottom:6px; }
.dp-agg-label   { font-size:12px; color:var(--dp-muted); }
.dp-agg-bars    { flex:1; }
.dp-bar-row     { display:flex; align-items:center; gap:8px; margin-bottom:5px; }
.dp-bar-label   { font-size:12px; color:var(--dp-muted); min-width:12px; text-align:right; }
.dp-bar-track   { flex:1; height:7px; background:#e6e4dc; border-radius:4px; overflow:hidden; }
.dp-bar-fill    { height:100%; background:var(--dp-bar-color, var(--dp-navy)); border-radius:4px; transition:width .4s; }
.dp-bar-pct     { font-size:12px; color:var(--dp-text); min-width:32px; text-align:right; font-weight:500; }
.dp-bar-count   { font-size:11px; color:var(--dp-muted); min-width:28px; }

/* Dimension breakdown */
.dp-agg-dims {
    border-top:1px solid var(--dp-border);
    padding:16px 24px;
}
.dp-agg-dims-heading {
    display:block; font-size:11px; font-weight:600; text-transform:uppercase;
    letter-spacing:.06em; color:var(--dp-muted); margin-bottom:10px;
}
.dp-agg-dims-grid   { display:flex; flex-direction:column; gap:6px; }
.dp-agg-dim-row     { display:flex; align-items:center; gap:10px; }
.dp-agg-dim-label   { font-size:13px; color:var(--dp-text); min-width:160px; }
.dp-agg-dim-dots    { display:flex; align-items:center; gap:3px; }
.dp-agg-dim-dots .dp-dot { width:11px; height:11px; margin-right:0; }
.dp-agg-dim-score   { font-size:13px; font-weight:600; color:var(--dp-navy); min-width:28px; }

/* Branding footer */
.dp-agg-brand {
    border-top:1px solid var(--dp-border);
    padding:8px 24px;
    display:flex; align-items:center; gap:6px;
    background:#f4f3ef;
}
.dp-agg-brand-site    { font-size:11px; font-weight:700; color:var(--dp-navy); letter-spacing:.01em; }
.dp-agg-brand-sep     { font-size:11px; color:var(--dp-muted); }
.dp-agg-brand-powered { font-size:11px; color:var(--dp-muted); }
.dp-agg-brand-powered a { color:var(--dp-navy); text-decoration:none; font-weight:600; }
.dp-agg-brand-powered a:hover { text-decoration:underline; }


/* ── Sort controls ──────────────────────────────────────────────────── */
.dp-list-controls { display:flex; align-items:center; gap:8px; margin-bottom:16px; font-size:13px; color:var(--dp-muted); }
.dp-sort-btn {
    background:none; border:1px solid var(--dp-border); border-radius:20px;
    padding:4px 12px; font-size:12px; color:var(--dp-muted); cursor:pointer;
    transition:all .15s;
}
.dp-sort-btn:hover,
.dp-sort-btn.active { background:var(--dp-navy); color:#fff; border-color:var(--dp-navy); }

/* ── Review card ────────────────────────────────────────────────────── */
.dp-review-card {
    background:#fff; border:1px solid var(--dp-border);
    border-radius:var(--dp-radius); padding:20px;
    margin-bottom:14px;
}
.dp-review-head   { display:flex; justify-content:space-between; align-items:flex-start; margin-bottom:12px; }
.dp-reviewer-info { display:flex; align-items:flex-start; gap:12px; }
.dp-reviewer-avatar {
    width:38px; height:38px; border-radius:50%;
    background:var(--dp-navy); color:#fff;
    display:flex; align-items:center; justify-content:center;
    font-size:16px; font-weight:700; flex-shrink:0;
}

.dp-verified-badge {
    display:inline-flex; align-items:center; gap:3px;
    background:#e8f5ee; color:var(--dp-green);
    font-size:11px; font-weight:700; padding:2px 8px;
    border-radius:20px; margin-right:4px;
}
.dp-specialty-tag {
    display:inline-block;
    background:#eef2f8; color:var(--dp-navy);
    font-size:11px; padding:2px 8px; border-radius:20px;
}

/* SureDash social profile links */
.dp-social-links {
    display:flex; align-items:center; gap:6px;
    margin-top:6px; flex-wrap:wrap;
}
.dp-social-link {
    display:inline-flex; align-items:center; justify-content:center;
    width:24px; height:24px;
    color:var(--dp-muted);
    border-radius:4px;
    transition:color .15s, background .15s;
    text-decoration:none;
}
.dp-social-link svg {
    width:14px; height:14px;
    flex-shrink:0;
}
.dp-social-link:hover                { color:var(--dp-navy); background:#eef2f8; }
.dp-social-link.dp-social-mail:hover       { color:#555; }
.dp-social-link.dp-social-facebook:hover   { color:#1877f2; background:#e7f0fd; }
.dp-social-link.dp-social-x:hover          { color:#000;    background:#f0f0f0; }
.dp-social-link.dp-social-instagram:hover  { color:#c13584; background:#fce4f3; }
.dp-social-link.dp-social-linkedin:hover   { color:#0a66c2; background:#e8f0f9; }

/* SureDash badges */
.dp-badges {
    display:flex; align-items:center; gap:4px;
    margin-top:6px; flex-wrap:wrap;
}
.dp-badge-pill {
    display:inline-flex; align-items:center; gap:4px;
    font-size:11px; font-weight:600; padding:2px 9px;
    border-radius:20px; line-height:1.4; white-space:nowrap;
}
.dp-badge-pill svg,
.dp-badge-pill i   { width:11px; height:11px; flex-shrink:0; }
.dp-review-date  { font-size:12px; color:var(--dp-muted); flex-shrink:0; }
.dp-review-body-row          { display:flex; gap:16px; align-items:flex-start; margin-bottom:12px; }
.dp-review-left              { flex:1; min-width:0; }
.dp-review-right             { flex-shrink:0; width:220px; }
@media(max-width:600px){
    .dp-review-body-row      { flex-direction:column; }
    .dp-review-right         { width:100%; }
}

/* YouTube embed */
.dp-yt-embed                 { width:100%; border-radius:var(--dp-radius); overflow:hidden; aspect-ratio:16/9; background:#000; }
.dp-yt-embed iframe          { width:100%; height:100%; display:block; border:0; }

.dp-review-ratings           { margin-bottom:0; }
.dp-review-headline{ font-size:15px; font-weight:700; color:var(--dp-navy); margin:0 0 8px; }
.dp-review-body   { font-size:14px; line-height:1.65; color:var(--dp-text); margin:0 0 12px; }

.dp-pros-cons     { display:grid; grid-template-columns:1fr 1fr; gap:12px; margin-bottom:12px; }
@media(max-width:500px){ .dp-pros-cons{ grid-template-columns:1fr; } }
.dp-pros, .dp-cons{ font-size:13px; line-height:1.5; }
.dp-pros strong   { color:var(--dp-green); display:block; margin-bottom:6px; }
.dp-cons strong   { color:var(--dp-red);   display:block; margin-bottom:6px; }
.dp-pros ul, .dp-cons ul { list-style:none; margin:0; padding:0; }
.dp-pros li, .dp-cons li { display:flex; align-items:center; gap:8px; font-size:13px; margin-bottom:5px; line-height:1.4; }
.dp-pro-dot { display:inline-block; width:8px; height:8px; border-radius:50%; background:var(--dp-green); flex-shrink:0; }
.dp-con-dot { display:inline-block; width:8px; height:8px; border-radius:50%; background:var(--dp-red);   flex-shrink:0; }

/* Line add/remove inputs */
.dp-line-list    { display:flex; flex-direction:column; gap:7px; }
.dp-line-row     { display:flex; align-items:center; gap:6px; }
.dp-line-row input { flex:1; }
.dp-line-add,
.dp-line-remove  {
    flex-shrink:0; width:28px; height:28px; border-radius:50%;
    border:1.5px solid var(--dp-border); background:#fff; color:var(--dp-muted);
    font-size:16px; line-height:1; cursor:pointer;
    display:flex; align-items:center; justify-content:center;
    transition:all .15s; padding:0;
}
.dp-line-add:hover   { background:var(--dp-green); border-color:var(--dp-green); color:#fff; }
.dp-line-remove:hover{ background:var(--dp-red);   border-color:var(--dp-red);   color:#fff; }

.dp-review-meta-fields { display:flex; flex-wrap:wrap; gap:8px; margin-bottom:10px; }
.dp-meta-item { font-size:12px; background:#f5f4f0; padding:3px 10px; border-radius:20px; }

.dp-review-foot  { display:flex; align-items:center; gap:8px; padding-top:10px; border-top:1px solid var(--dp-border); font-size:12px; color:var(--dp-muted); }
.dp-helpful-label{ margin-right:2px; }
.dp-vote-btn           { background:none; border:1px solid var(--dp-border); border-radius:20px; padding:3px 10px; font-size:12px; line-height:1.4; cursor:pointer; transition:all .15s; }
.dp-vote-btn:hover     { background:var(--dp-bg); border-color:#ccc; }
.dp-vote-btn.dp-voted  { opacity:.5; cursor:not-allowed; }
.dp-vote-btn.dp-voted-active { opacity:1; border-color:#aaa; background:var(--dp-bg); }

.dp-loading      { color:var(--dp-muted); font-size:14px; padding:20px 0; }
.dp-no-reviews   { color:var(--dp-muted); font-size:14px; }
.dp-notice       { color:var(--dp-muted); font-style:italic; }

/* ── Photo upload ────────────────────────────────────────────────── */
.dp-photo-drop-zone {
    border:2px dashed var(--dp-border); border-radius:var(--dp-radius);
    padding:24px 16px; text-align:center; cursor:pointer;
    color:var(--dp-muted); font-size:13px; transition:all .15s;
    display:flex; flex-direction:column; align-items:center; gap:6px;
}
.dp-photo-drop-zone svg       { color:var(--dp-muted); }
.dp-photo-drop-zone:hover,
.dp-photo-drop-zone.dp-drag-over { border-color:var(--dp-navy); background:#f5f6fa; }
.dp-photo-browse              { color:var(--dp-navy); font-weight:600; cursor:pointer; text-decoration:underline; }

.dp-photo-previews            { display:flex; flex-wrap:wrap; gap:10px; margin-top:12px; }
.dp-preview-thumb             { position:relative; width:80px; height:80px; border-radius:var(--dp-radius); overflow:hidden; border:1px solid var(--dp-border); flex-shrink:0; }
.dp-preview-thumb img         { width:100%; height:100%; object-fit:cover; display:block; }
.dp-thumb-remove              {
    position:absolute; top:3px; right:3px;
    width:18px; height:18px; border-radius:50%;
    background:rgba(0,0,0,.55); color:#fff; border:none;
    font-size:10px; cursor:pointer; display:flex;
    align-items:center; justify-content:center; padding:0;
    opacity:0; transition:opacity .15s;
}
.dp-preview-thumb:hover .dp-thumb-remove { opacity:1; }
.dp-preview-thumb.dp-uploading img       { opacity:.4; }
.dp-thumb-spinner             {
    position:absolute; inset:0; display:flex; align-items:center; justify-content:center;
}
.dp-thumb-spinner::after      {
    content:''; width:20px; height:20px; border-radius:50%;
    border:2px solid rgba(255,255,255,.4);
    border-top-color:#fff;
    animation:dp-spin .7s linear infinite;
}
.dp-preview-thumb:not(.dp-uploading) .dp-thumb-spinner { display:none; }
@keyframes dp-spin { to { transform:rotate(360deg); } }

.dp-photo-progress            { margin-top:10px; }
.dp-uploading-label           { font-size:12px; color:var(--dp-muted); display:block; margin-bottom:5px; }
.dp-progress-bar              { height:4px; background:#e6e4dc; border-radius:2px; overflow:hidden; }
.dp-progress-fill             { height:100%; width:60%; background:var(--dp-navy); border-radius:2px; animation:dp-progress 1.2s ease-in-out infinite; }
@keyframes dp-progress        { 0%{transform:translateX(-100%)} 100%{transform:translateX(250%)} }

/* ── Photo gallery (review card) ────────────────────────────────── */
.dp-photo-gallery             { display:flex; flex-wrap:wrap; gap:8px; margin:12px 0 4px; }
.dp-photo-thumb               {
    position:relative; width:80px; height:80px; border-radius:var(--dp-radius);
    border:1px solid var(--dp-border); cursor:pointer;
    padding:0; overflow:hidden;
}
.dp-photo-thumb::before       {
    content:''; position:absolute; inset:0;
    background-image:var(--dp-thumb-bg); background-size:cover; background-position:center;
}

/* ── Lightbox ────────────────────────────────────────────────────── */
.dp-lightbox                  { position:fixed; inset:0; z-index:99999; display:flex; align-items:center; justify-content:center; }
.dp-lb-overlay                { position:absolute; inset:0; background:rgba(0,0,0,.88); }
.dp-lb-stage                  { position:relative; z-index:1; max-width:90vw; max-height:88vh; display:flex; align-items:center; justify-content:center; }
.dp-lb-img                    { max-width:90vw; max-height:84vh; border-radius:6px; display:block; box-shadow:0 8px 40px rgba(0,0,0,.6); }
.dp-lb-close                  { position:fixed; top:20px; right:24px; z-index:2; background:rgba(255,255,255,.15); border:none; color:#fff; width:36px; height:36px; border-radius:50%; font-size:18px; cursor:pointer; display:flex; align-items:center; justify-content:center; transition:background .15s; }
.dp-lb-close:hover            { background:rgba(255,255,255,.3); }
.dp-lb-prev, .dp-lb-next      { position:fixed; top:50%; transform:translateY(-50%); z-index:2; background:rgba(255,255,255,.15); border:none; color:#fff; width:44px; height:44px; border-radius:50%; font-size:26px; cursor:pointer; display:flex; align-items:center; justify-content:center; transition:background .15s; }
.dp-lb-prev                   { left:20px; }
.dp-lb-next                   { right:20px; }
.dp-lb-prev:hover,
.dp-lb-next:hover             { background:rgba(255,255,255,.3); }
.dp-lb-counter                { position:fixed; bottom:20px; left:50%; transform:translateX(-50%); color:rgba(255,255,255,.7); font-size:13px; z-index:2; }


.dp-pagination { display:flex; gap:6px; margin-top:16px; }
.dp-page-btn { background:none; border:1px solid var(--dp-border); border-radius:4px; padding:5px 11px; font-size:13px; cursor:pointer; }
.dp-page-btn.active { background:var(--dp-navy); color:#fff; border-color:var(--dp-navy); }

/* ── Admin ──────────────────────────────────────────────────────────── */
.dp-admin h1          { font-size:22px; }
.dp-cpt-card          { background:#fff; border:1px solid #dcdcdc; border-radius:6px; margin-bottom:18px; overflow:hidden; }
.dp-cpt-header        { padding:14px 18px; background:#f9f9f9; border-bottom:1px solid #eee; display:flex; align-items:center; justify-content:space-between; gap:10px; }
.dp-cpt-card:not(.dp-expanded) .dp-cpt-header { border-bottom:none; }
.dp-cpt-header label  { display:flex; align-items:center; gap:10px; cursor:pointer; font-size:15px; flex:1; min-width:0; }
.dp-cpt-header code   { background:#efefef; padding:2px 7px; border-radius:4px; font-size:12px; }
.dp-cpt-toggle        { flex-shrink:0; background:none; border:1px solid #c3c4c7; border-radius:4px; cursor:pointer; font-size:11px; line-height:1; padding:4px 8px; color:#555; transition:transform .2s; }
.dp-cpt-toggle:hover  { background:#f0f0f0; border-color:#999; }
.dp-cpt-card.dp-expanded .dp-cpt-toggle { transform:rotate(180deg); }
.dp-cpt-body          { padding:18px; }
.dp-cpt-body h4       { margin:0 0 10px; font-size:13px; color:#23282d; }
.dp-hidden            { display:none; }
.dp-dim-row           { display:flex; flex-direction:column; gap:6px; margin-bottom:14px; }
.dp-dim-row-top       { display:flex; align-items:center; gap:8px; }
.dp-dim-row-top input[type=text] { max-width:260px; }
.dp-dim-guidance      { width:100%; max-width:500px; font-size:12px; resize:vertical; padding:6px 8px; border:1px solid #dcdcdc; border-radius:4px; color:#444; }
.dp-cf-row            { display:flex; align-items:center; gap:8px; margin-bottom:8px; }
.dp-cf-row input      { max-width:200px; }
.dp-award-label       { display:inline-flex; align-items:center; gap:4px; font-size:12px; color:#555; white-space:nowrap; cursor:pointer; }
.dp-hint              { font-size:11px; color:#888; }
.dp-shortcode-ref     { background:#f0f8ff; border:1px solid #c5d9f0; border-radius:4px; padding:10px 14px; margin-top:16px; font-size:12px; line-height:1.8; }
.dp-acf-note          { background:#fff8e8; border:1px solid #f5d78e; border-radius:4px; padding:10px 14px; margin-top:14px; font-size:12px; line-height:1.7; }

.dp-admin-list-header  { margin-bottom:8px; }
.dp-count-label        { font-size:13px; color:#555; }
.dp-admin-pagination   { margin-top:12px; }

.dp-reviews-table td  { vertical-align:top; font-size:13px; }
.dp-approve { color:#1a7a5e !important; border-color:#1a7a5e !important; }
.dp-reject  { color:#c8373a !important; border-color:#c8373a !important; }
.dp-status-actions { white-space:nowrap; }
.dp-status-actions .button { margin-right:4px; }

/* ── Frontend badge generator ────────────────────────────────────── */
.dp-badge-frontend         { max-width:680px; }
.dp-badge-intro            { margin-bottom:20px; }
.dp-badge-intro h3         { font-size:20px; font-weight:700; color:var(--dp-navy); margin:0 0 4px; }
.dp-badge-intro p          { color:var(--dp-muted); font-size:14px; margin:0; }
.dp-bf-controls            { background:var(--dp-bg); border:1px solid var(--dp-border); border-radius:var(--dp-radius); padding:18px; margin-bottom:18px; }
.dp-bf-options             { display:flex; gap:32px; margin-top:14px; }
.dp-bf-radio-group         { display:flex; gap:14px; margin-top:5px; flex-wrap:wrap; }
.dp-bf-radio-group label   { display:flex; align-items:center; gap:5px; font-weight:400; cursor:pointer; font-size:13px; }
.dp-bf-preview-wrap        { margin-bottom:18px; }
.dp-bf-preview-label       { font-size:13px; font-weight:600; color:var(--dp-navy); margin-bottom:8px; }
.dp-bf-preview-stage       { border-radius:var(--dp-radius); min-height:80px; display:flex; align-items:center; padding:24px 20px; transition:background .2s; }
.dp-bf-embed-wrap          { margin-bottom:18px; }
.dp-bf-embed-wrap label    { font-size:13px; font-weight:600; color:var(--dp-navy); display:block; margin-bottom:3px; }
.dp-bf-code-row            { display:flex; gap:10px; align-items:flex-start; margin-top:8px; }
.dp-bf-code-row textarea   { flex:1; font-family:monospace; font-size:12px; padding:10px; border:1.5px solid var(--dp-border); border-radius:var(--dp-radius); resize:none; background:#fafaf8; }
.dp-bf-install             { background:#f0f8ff; border:1px solid #c5d9f0; border-radius:var(--dp-radius); padding:14px 16px; font-size:13px; }
.dp-bf-install ol          { margin:8px 0 0 18px; line-height:1.9; }

/* ── Report button (front-end review card) ──────────────────────── */
.dp-report-btn {
    margin-left:auto;
    background:none;
    border:1px solid #e0b0b2;
    color:#c8373a;
    font-size:11px;
    font-weight:600;
    padding:3px 10px;
    border-radius:4px;
    cursor:pointer;
    letter-spacing:.02em;
    transition:background .15s, color .15s;
    line-height:1.6;
}
.dp-report-btn:hover {
    background:#c8373a;
    color:#fff;
    border-color:#c8373a;
}
.dp-copy-link-btn {
    background:none;
    border:1px solid var(--dp-border);
    color:var(--dp-muted);
    font-size:11px;
    font-weight:600;
    padding:3px 10px;
    border-radius:4px;
    cursor:pointer;
    letter-spacing:.02em;
    transition:background .15s, color .15s, border-color .15s;
    line-height:1.6;
}
.dp-copy-link-btn:hover {
    background:var(--dp-bg);
    border-color:#aaa;
    color:var(--dp-text);
}
@keyframes dp-highlight-pulse {
    0%   { box-shadow:0 0 0 0 rgba(15,35,72,.25); background:rgba(15,35,72,.06); }
    60%  { box-shadow:0 0 0 8px rgba(15,35,72,0); background:rgba(15,35,72,.03); }
    100% { box-shadow:0 0 0 0 rgba(15,35,72,0);  background:transparent; }
}
.dp-review-card.dp-highlight {
    animation:dp-highlight-pulse 2s ease-out forwards;
    border-color:var(--dp-navy);
}
/* Badge group — pushes the pill cluster to the right of the footer flex row */
.dp-review-badges-group {
    margin-left:auto;
    display:inline-flex;
    align-items:center;
    gap:5px;
    flex-shrink:0;
}
.dp-incentivized-badge,
.dp-sample-recipient-badge,
.dp-brand-referred-badge {
    background:#e5e7eb;
    color:#4b5563;
    font-size:11px;
    font-weight:600;
    padding:3px 10px;
    border-radius:20px;
    letter-spacing:.02em;
    line-height:1.6;
    white-space:nowrap;
}
.dp-sample-recipient-badge {
    background:#d1fae5;
    color:#065f46;
}
.dp-brand-referred-badge {
    background:#dbeafe;
    color:#1e40af;
}
.dp-review-badges-group + .dp-report-btn { margin-left:6px; }

/* ── Pinned / Brand Highlight ───────────────────────────────────── */
.dp-review-card.dp-review-pinned {
    border-color: var(--dp-gold);
    box-shadow: 0 0 0 1px var(--dp-gold);
}
.dp-pinned-banner {
    display: flex;
    align-items: center;
    gap: 6px;
    background: linear-gradient(90deg, #fdf6e3 0%, #fefcf5 100%);
    border-bottom: 1px solid #e8d89a;
    padding: 7px 16px;
    margin: -20px -20px 16px;
    border-radius: var(--dp-radius) var(--dp-radius) 0 0;
}
.dp-pinned-icon {
    width: 14px;
    height: 14px;
    color: var(--dp-gold);
    flex-shrink: 0;
}
.dp-pinned-label {
    font-size: 11px;
    font-weight: 700;
    color: #7a6010;
    letter-spacing: .04em;
    text-transform: uppercase;
}
.dp-pin-btn,
.dp-unpin-btn {
    background: none;
    border: 1px solid var(--dp-border);
    color: var(--dp-muted);
    font-size: 11px;
    font-weight: 600;
    padding: 3px 10px;
    border-radius: 4px;
    cursor: pointer;
    letter-spacing: .02em;
    transition: background .15s, color .15s, border-color .15s;
    line-height: 1.6;
}
.dp-pin-btn:hover {
    background: #fdf6e3;
    border-color: var(--dp-gold);
    color: #7a6010;
}
.dp-unpin-btn:hover {
    background: var(--dp-bg);
    border-color: #aaa;
    color: var(--dp-text);
}
.dp-pin-btn:disabled,
.dp-unpin-btn:disabled { opacity: .55; cursor: not-allowed; }

/* ── Report modal ───────────────────────────────────────────────── */
.dp-report-modal {
    position:fixed; inset:0; z-index:99999;
    display:flex; align-items:center; justify-content:center;
}
.dp-rm-overlay {
    position:absolute; inset:0; background:rgba(0,0,0,.6);
}
.dp-rm-box {
    position:relative; z-index:1;
    background:#fff; border-radius:8px;
    box-shadow:0 12px 48px rgba(0,0,0,.28);
    width:100%; max-width:460px;
    padding:30px 28px 24px;
    margin:16px;
}
.dp-rm-close {
    position:absolute; top:14px; right:16px;
    background:none; border:none; font-size:18px;
    color:#999; cursor:pointer; line-height:1;
    padding:0; width:28px; height:28px;
    display:flex; align-items:center; justify-content:center;
    border-radius:50%; transition:background .15s;
}
.dp-rm-close:hover { background:#f2f0eb; color:#333; }
.dp-rm-box h3 {
    margin:0 0 6px; font-size:18px;
    color:var(--dp-navy,#1a2744); font-weight:700;
}
.dp-rm-desc {
    font-size:13px; color:#666; margin:0 0 20px; line-height:1.5;
}
.dp-rm-field { margin-bottom:14px; }
.dp-rm-field label {
    display:block; font-size:13px; font-weight:600;
    color:#333; margin-bottom:4px;
}
.dp-rm-req { color:#c8373a; }
.dp-rm-field input,
.dp-rm-field textarea {
    width:100%; box-sizing:border-box;
    border:1.5px solid #ddd; border-radius:5px;
    padding:8px 11px; font-size:14px; font-family:inherit;
    transition:border-color .15s;
    resize:vertical;
}
.dp-rm-field input:focus,
.dp-rm-field textarea:focus {
    outline:none; border-color:var(--dp-navy,#1a2744);
}
.dp-rm-error {
    background:#fef2f2; border:1px solid #fecaca;
    border-radius:4px; padding:8px 12px;
    font-size:13px; color:#c8373a; margin-bottom:14px;
}
.dp-rm-actions {
    display:flex; align-items:center; gap:10px; margin-top:4px;
}
.dp-rm-submit {
    background:var(--dp-navy,#1a2744); color:#fff;
    border:none; border-radius:5px;
    padding:9px 22px; font-size:14px; font-weight:600;
    cursor:pointer; transition:opacity .15s;
}
.dp-rm-submit:hover   { opacity:.85; }
.dp-rm-submit:disabled { opacity:.5; cursor:not-allowed; }
.dp-rm-cancel {
    background:none; border:none; font-size:13px;
    color:#888; cursor:pointer; padding:4px 6px;
}
.dp-rm-cancel:hover { color:#333; }
.dp-rm-success {
    text-align:center; padding:12px 0;
}
.dp-rm-success p {
    font-size:14px; color:#555; margin:10px 0 18px; line-height:1.6;
}

/* ── Admin: reported reviews table ─────────────────────────────── */
.dp-reports-table td  { vertical-align:top; font-size:13px; }
.dp-dismiss-btn       { color:#b45309 !important; border-color:#b45309 !important; }

/* ── Login gate (review form) ───────────────────────────────────── */
.dp-login-gate {
    text-align:center; padding:40px 24px;
    background:var(--dp-bg); border:1px solid var(--dp-border);
    border-radius:var(--dp-radius);
}
.dp-login-gate-icon { color:var(--dp-navy); margin-bottom:12px; }
.dp-login-gate h3   { font-size:18px; font-weight:700; color:var(--dp-navy); margin:0 0 8px; }
.dp-login-gate p    { font-size:14px; color:var(--dp-muted); margin:0 0 20px; }
.dp-login-gate-btns { display:flex; gap:10px; justify-content:center; flex-wrap:wrap; }
.dp-btn-secondary   {
    display:inline-block; padding:9px 20px;
    border:1.5px solid var(--dp-navy); color:var(--dp-navy);
    border-radius:var(--dp-radius); font-size:14px; font-weight:600;
    text-decoration:none; transition:background .15s, color .15s;
}
.dp-btn-secondary:hover { background:var(--dp-navy); color:#fff; }

/* ── Locked field (name/email pre-filled from account) ──────────── */
.dp-locked-field          { position:relative; }
.dp-locked-field input    { padding-right:34px; background:#f8f7f3; color:#555; cursor:default; }
.dp-locked-field input:focus { border-color:var(--dp-border); box-shadow:none; outline:none; }
.dp-locked-icon           {
    position:absolute; right:10px; top:50%; transform:translateY(-50%);
    color:var(--dp-muted); pointer-events:none; display:flex; align-items:center;
}

/* ── My Reviews dashboard ───────────────────────────────────────── */
.dp-my-reviews-wrap         { width:100%; }
.dp-my-header               { margin-bottom:22px; }
.dp-my-header h3            { font-size:22px; font-weight:700; color:var(--dp-navy); margin:0 0 2px; }
.dp-my-sub                  { font-size:13px; color:var(--dp-muted); margin:0; }
.dp-my-empty                { background:var(--dp-bg); border:1px solid var(--dp-border); border-radius:var(--dp-radius); padding:28px; text-align:center; color:var(--dp-muted); }
.dp-my-list                 { display:flex; flex-direction:column; gap:16px; }

.dp-my-card                 {
    background:#fff; border:1px solid var(--dp-border);
    border-radius:var(--dp-radius); overflow:hidden;
}
.dp-my-card-head            {
    display:flex; align-items:flex-start; justify-content:space-between;
    gap:12px; padding:14px 18px 10px;
    border-bottom:1px solid var(--dp-border); background:var(--dp-bg);
}
.dp-my-product-info         { display:flex; flex-direction:column; gap:2px; }
.dp-my-product-link         { font-weight:700; color:var(--dp-navy); text-decoration:none; font-size:14px; }
.dp-my-product-link:hover   { text-decoration:underline; }
.dp-my-date                 { font-size:11px; color:var(--dp-muted); }
.dp-my-badges               { display:flex; gap:6px; flex-wrap:wrap; align-items:center; flex-shrink:0; }

/* Status badges */
.dp-status-badge            { display:inline-block; font-size:11px; font-weight:700; padding:3px 9px; border-radius:20px; letter-spacing:.03em; white-space:nowrap; }
.dp-badge-approved          { background:#d1fae5; color:#065f46; }
.dp-badge-pending           { background:#fef3c7; color:#92400e; }
.dp-badge-rejected          { background:#fee2e2; color:#991b1b; }
.dp-badge-delete-req        { background:#fee2e2; color:#991b1b; }

.dp-my-summary              { padding:14px 18px 10px; }
.dp-my-dots                 { display:flex; gap:4px; margin-bottom:6px; }
.dp-my-headline             { font-size:15px; font-weight:700; margin:0 0 4px; color:var(--dp-navy); }
.dp-my-body                 { font-size:13px; color:var(--dp-muted); margin:0; line-height:1.5; }

.dp-my-actions              { padding:10px 18px 14px; display:flex; gap:10px; align-items:center; flex-wrap:wrap; }
.dp-my-edit-btn             {
    background:none; border:1.5px solid var(--dp-navy); color:var(--dp-navy);
    font-size:13px; font-weight:600; padding:6px 16px; border-radius:var(--dp-radius);
    cursor:pointer; transition:background .15s, color .15s;
}
.dp-my-edit-btn:hover,
.dp-my-edit-btn.dp-edit-active { background:var(--dp-navy); color:#fff; }
.dp-my-delete-req-btn       {
    background:none; border:1.5px solid #e0b0b2; color:#c8373a;
    font-size:13px; font-weight:600; padding:6px 16px; border-radius:var(--dp-radius);
    cursor:pointer; transition:background .15s, color .15s;
}
.dp-my-delete-req-btn:hover { background:#c8373a; color:#fff; border-color:#c8373a; }
.dp-my-delete-notice        { font-size:12px; color:var(--dp-muted); font-style:italic; }

/* Edit accordion */
.dp-edit-accordion          {
    border-top:2px solid var(--dp-navy);
    background:var(--dp-bg); padding:20px 20px 16px;
}
.dp-edit-note               {
    display:flex; align-items:flex-start; gap:7px;
    background:#fffbe6; border:1px solid #f5d78e; border-radius:4px;
    padding:9px 12px; font-size:12px; color:#6b4e00; margin-bottom:18px; line-height:1.5;
}
.dp-edit-note svg           { flex-shrink:0; margin-top:1px; }
.dp-edit-foot               { display:flex; align-items:center; gap:10px; margin-top:6px; flex-wrap:wrap; }
.dp-edit-msg                { font-size:13px; padding:4px 10px; border-radius:4px; }
.dp-edit-msg.error          { background:#fee2e2; color:#991b1b; }
.dp-edit-msg.success        { background:#d1fae5; color:#065f46; }
.dp-edit-flash              {
    background:#d1fae5; color:#065f46; font-size:13px; font-weight:600;
    padding:9px 14px; border-bottom:1px solid #a7f3d0; animation:dp-flash-in .3s ease;
}
@keyframes dp-flash-in      { from { opacity:0; transform:translateY(-6px); } to { opacity:1; transform:none; } }

/* ── Admin: delete request badge & dismiss button ───────────────── */
.dp-delete-req-badge        { display:inline-block; background:#fee2e2; color:#991b1b; font-size:11px; font-weight:600; padding:2px 7px; border-radius:12px; margin-top:3px; }
.dp-dismiss-del-btn         { color:#b45309 !important; border-color:#b45309 !important; }

/* ═══════════════════════════════════════════════════════════════════
   BRAND DASHBOARD
   ═══════════════════════════════════════════════════════════════════ */

/* ── Wrap & header ──────────────────────────────────────────────── */
.dp-brand-wrap                { max-width:1020px; font-family:inherit; }
.dp-brand-header              {
    display:flex; align-items:center; justify-content:space-between;
    gap:16px; flex-wrap:wrap;
    padding:18px 22px; background:#fff;
    border:1px solid var(--dp-border); border-radius:var(--dp-radius) var(--dp-radius) 0 0;
    border-bottom:none;
}
.dp-brand-identity            { display:flex; align-items:center; gap:12px; }
.dp-brand-avatar              {
    width:42px; height:42px; border-radius:50%;
    background:var(--dp-navy); color:#fff;
    font-size:17px; font-weight:700; display:flex; align-items:center; justify-content:center;
    flex-shrink:0;
}
.dp-brand-name                { display:block; font-weight:700; color:var(--dp-navy); font-size:15px; }
.dp-brand-meta                { display:block; font-size:12px; color:var(--dp-muted); margin-top:1px; }

/* ── Tab nav ────────────────────────────────────────────────────── */
.dp-brand-nav                 { display:flex; gap:2px; flex-wrap:wrap; }
.dp-bnav-btn                  {
    background:none; border:none;
    padding:8px 16px; font-size:13px; font-weight:600; color:var(--dp-muted);
    cursor:pointer; border-radius:6px; transition:background .15s, color .15s;
    white-space:nowrap;
}
.dp-bnav-btn:hover            { background:var(--dp-bg); color:var(--dp-navy); }
.dp-bnav-btn.active           { background:var(--dp-navy); color:#fff; }

/* ── Panel container ────────────────────────────────────────────── */
.dp-brand-panel               {
    background:#fff; border:1px solid var(--dp-border);
    border-radius:0 0 var(--dp-radius) var(--dp-radius);
    padding:24px 22px; min-height:320px;
}
.dp-brand-loading             { text-align:center; padding:48px 24px; color:var(--dp-muted); font-size:14px; }
.dp-brand-empty               { text-align:center; padding:32px 24px; color:var(--dp-muted); font-size:14px; margin:0; }
.dp-section-label             { font-size:13px; font-weight:700; color:var(--dp-muted); text-transform:uppercase; letter-spacing:.06em; margin:28px 0 12px; }

/* ── Stat cards ─────────────────────────────────────────────────── */
.dp-stat-grid                 { display:grid; grid-template-columns:repeat(auto-fill,minmax(150px,1fr)); gap:12px; margin-bottom:8px; }
.dp-stat-card                 {
    display:flex; align-items:center; gap:12px;
    background:var(--dp-bg); border:1px solid var(--dp-border);
    border-radius:var(--dp-radius); padding:14px 16px;
}
.dp-stat-icon                 { font-size:22px; flex-shrink:0; }
.dp-stat-value                { font-size:22px; font-weight:800; color:var(--dp-navy); line-height:1.1; }
.dp-stat-label                { font-size:11px; color:var(--dp-muted); margin-top:2px; }
.dp-stat-note                 { background:#e9e7df; padding:1px 5px; border-radius:3px; font-size:10px; }

/* ── Product cards ──────────────────────────────────────────────── */
.dp-product-grid              { display:grid; grid-template-columns:repeat(auto-fill,minmax(220px,1fr)); gap:14px; }
.dp-product-card              {
    background:var(--dp-bg); border:1px solid var(--dp-border);
    border-radius:var(--dp-radius); padding:16px; overflow:hidden;
}
.dp-pc-top                    { margin-bottom:10px; }
.dp-pc-title                  { font-weight:700; color:var(--dp-navy); text-decoration:none; font-size:14px; display:block; }
.dp-pc-title:hover            { text-decoration:underline; }
.dp-pc-score                  { display:flex; align-items:center; gap:8px; margin-bottom:8px; }
.dp-pc-avg                    { font-size:26px; font-weight:800; color:var(--dp-navy); line-height:1; }
.dp-pc-meta                   { display:flex; flex-wrap:wrap; gap:8px; font-size:11px; color:var(--dp-muted); margin-bottom:10px; }
.dp-sparkline                 { display:block; width:100%; margin-top:4px; }

/* ── Review filters ─────────────────────────────────────────────── */
.dp-brand-filters             {
    display:flex; align-items:center; gap:10px; flex-wrap:wrap;
    padding-bottom:16px; margin-bottom:16px;
    border-bottom:1px solid var(--dp-border);
}
.dp-brand-select              {
    border:1.5px solid var(--dp-border); border-radius:var(--dp-radius);
    padding:7px 10px; font-size:13px; font-family:inherit; background:#fff;
    color:var(--dp-navy); cursor:pointer;
}
.dp-bf-toggle, .dp-an-range-toggle {
    display:flex; background:var(--dp-bg); border:1px solid var(--dp-border);
    border-radius:var(--dp-radius); overflow:hidden;
}
.dp-bf-status, .dp-an-range   {
    background:none; border:none; padding:7px 13px; font-size:12px;
    font-weight:600; color:var(--dp-muted); cursor:pointer;
    transition:background .12s, color .12s;
}
.dp-bf-status.active,
.dp-an-range.active           { background:var(--dp-navy); color:#fff; }
.dp-bf-status:not(.active):hover,
.dp-an-range:not(.active):hover { background:#e9e7df; color:var(--dp-navy); }

/* ── Brand review cards ─────────────────────────────────────────── */
.dp-brand-review-list         { display:flex; flex-direction:column; gap:12px; }
.dp-brand-review-card         {
    border:1px solid var(--dp-border); border-radius:var(--dp-radius);
    padding:16px 18px; background:#fff;
}
.dp-brand-review-card.dp-brc-pending { border-left:3px solid #f59e0b; }
.dp-brc-head                  {
    display:flex; align-items:flex-start; justify-content:space-between;
    gap:10px; margin-bottom:10px; flex-wrap:wrap;
}
.dp-brc-reviewer              { display:flex; align-items:center; gap:10px; }
.dp-brc-badges                { display:flex; align-items:center; gap:6px; flex-wrap:wrap; }
.dp-brc-product-tag           {
    font-size:11px; font-weight:600; background:#e9e7df;
    color:var(--dp-navy); padding:2px 8px; border-radius:20px;
}
.dp-brc-score-row             {
    display:flex; align-items:center; gap:8px; flex-wrap:wrap;
    margin-bottom:8px; font-size:13px; color:var(--dp-muted);
}
.dp-brc-avg                   { font-size:18px; font-weight:800; color:var(--dp-navy); }
.dp-brc-date                  { margin-left:auto; }
.dp-brc-votes                 { color:var(--dp-muted); }
.dp-brc-headline              { font-size:14px; font-weight:700; color:var(--dp-navy); margin:0 0 4px; }
.dp-brc-preview               { font-size:13px; color:#555; margin:0; line-height:1.6; }
.dp-brc-full                  { font-size:13px; color:#555; margin-top:6px; line-height:1.6; }
.dp-brc-full p                { margin:0; }
.dp-brc-read-more             {
    background:none; border:none; color:var(--dp-navy); font-size:12px;
    font-weight:600; cursor:pointer; padding:4px 0 0; text-decoration:underline;
}

/* ── Analytics controls ─────────────────────────────────────────── */
.dp-analytics-controls        {
    display:flex; align-items:center; gap:12px; flex-wrap:wrap;
    padding-bottom:16px; margin-bottom:20px;
    border-bottom:1px solid var(--dp-border);
}

/* ── Analytics summary bar ──────────────────────────────────────── */
.dp-an-summary                {
    display:grid; grid-template-columns:repeat(auto-fill,minmax(130px,1fr));
    gap:10px; margin-bottom:20px;
}
.dp-an-stat                   {
    background:var(--dp-bg); border:1px solid var(--dp-border);
    border-radius:var(--dp-radius); padding:12px 14px;
}
.dp-an-val                    { font-size:20px; font-weight:800; color:var(--dp-navy); line-height:1.1; }
.dp-an-lbl                    { font-size:11px; color:var(--dp-muted); margin-top:3px; }

/* ── Chart grid ─────────────────────────────────────────────────── */
.dp-analytics-grid            { display:grid; grid-template-columns:1fr 1fr; gap:16px; }
.dp-chart-card                {
    background:var(--dp-bg); border:1px solid var(--dp-border);
    border-radius:var(--dp-radius); padding:18px 16px;
}
.dp-chart-card.dp-chart-full  { grid-column:1 / -1; }
.dp-chart-title               { font-size:13px; font-weight:700; color:var(--dp-navy); margin:0 0 14px; }
.dp-chart-sub                 { font-weight:400; color:var(--dp-muted); font-size:11px; margin-left:6px; }
.dp-chart-canvas-wrap         { position:relative; height:220px; }
.dp-chart-canvas-wrap canvas  { max-height:220px; }
.dp-chart-card.dp-chart-full .dp-chart-canvas-wrap { height:180px; }

/* ── Impressions table ──────────────────────────────────────────── */
.dp-imp-wrap                  { overflow-x:auto; }
.dp-imp-table                 { width:100%; border-collapse:collapse; font-size:12px; }
.dp-imp-table th              { text-align:left; padding:6px 8px; color:var(--dp-muted); font-weight:600; border-bottom:1px solid var(--dp-border); }
.dp-imp-table td              { padding:7px 8px; border-bottom:1px solid #f0ede5; vertical-align:middle; }
.dp-imp-table tr:last-child td { border-bottom:none; }
.dp-imp-total td              { font-weight:700; color:var(--dp-navy); }
.dp-imp-bar-track             { display:inline-block; width:80px; height:6px; background:#e9e7df; border-radius:3px; vertical-align:middle; margin-right:5px; }
.dp-imp-bar-fill              { height:100%; background:var(--dp-navy); border-radius:3px; transition:width .4s; }

/* ── Account tab ────────────────────────────────────────────────── */
.dp-account-grid              { display:grid; grid-template-columns:1fr 1fr; gap:16px; }
.dp-account-card              {
    background:var(--dp-bg); border:1px solid var(--dp-border);
    border-radius:var(--dp-radius); padding:20px;
}
.dp-account-card h4           { font-size:14px; font-weight:700; color:var(--dp-navy); margin:0 0 14px; }
.dp-account-row               { display:flex; gap:12px; align-items:baseline; margin-bottom:10px; font-size:13px; }
.dp-account-label             { font-weight:600; color:var(--dp-muted); min-width:72px; flex-shrink:0; }
.dp-assigned-list             { list-style:none; margin:0 0 12px; padding:0; }
.dp-assigned-list li          { display:flex; align-items:center; justify-content:space-between; padding:7px 0; border-bottom:1px solid var(--dp-border); font-size:13px; }
.dp-assigned-list li:last-child { border-bottom:none; }
.dp-assigned-list a           { color:var(--dp-navy); text-decoration:none; font-weight:600; }
.dp-assigned-list a:hover     { text-decoration:underline; }
.dp-assigned-id               { font-size:11px; color:var(--dp-muted); }
.dp-account-note              { font-size:12px; color:var(--dp-muted); line-height:1.6; margin:0; }

/* ── Responsive ─────────────────────────────────────────────────── */
@media (max-width:700px) {
    .dp-brand-header     { flex-direction:column; align-items:flex-start; }
    .dp-analytics-grid   { grid-template-columns:1fr; }
    .dp-chart-card.dp-chart-full { grid-column:auto; }
    .dp-account-grid     { grid-template-columns:1fr; }
    .dp-stat-grid        { grid-template-columns:1fr 1fr; }
    .dp-product-grid     { grid-template-columns:1fr; }
}

/* ═══════════════════════════════════════════════════════════════════
   BRAND DASHBOARD
   ═══════════════════════════════════════════════════════════════════ */

/* ── Shell ───────────────────────────────────────────────────────── */
.dp-brand-wrap               { max-width:960px; font-family:inherit; }
.dp-brand-empty              { text-align:center; padding:56px 24px; color:var(--dp-muted); }
.dp-brand-empty svg          { margin-bottom:14px; opacity:.4; }
.dp-brand-empty h3           { font-size:20px; font-weight:700; color:var(--dp-navy); margin:0 0 8px; }
.dp-brand-empty p            { font-size:14px; margin:0; line-height:1.6; }

/* ── Tab nav ─────────────────────────────────────────────────────── */
.dp-brand-nav                { display:flex; gap:2px; border-bottom:2px solid var(--dp-border); margin-bottom:24px; overflow-x:auto; }
.dp-brand-tab                {
    display:flex; align-items:center; gap:6px;
    background:none; border:none; border-bottom:2px solid transparent;
    padding:10px 18px; font-size:13px; font-weight:600; color:var(--dp-muted);
    cursor:pointer; white-space:nowrap; margin-bottom:-2px;
    transition:color .15s, border-color .15s;
}
.dp-brand-tab:hover          { color:var(--dp-navy); }
.dp-brand-tab.active         { color:var(--dp-navy); border-bottom-color:var(--dp-navy); }
.dp-brand-tab-badge          {
    display:inline-flex; align-items:center; justify-content:center;
    background:#c8373a; color:#fff; font-size:10px; font-weight:700;
    min-width:18px; height:18px; border-radius:9px; padding:0 5px;
}

/* ── Panels ──────────────────────────────────────────────────────── */
.dp-brand-panel              { display:none; }
.dp-brand-panel.active       { display:block; }
.dp-brand-panel-inner        { padding:4px 0; }

/* ── Loading states ──────────────────────────────────────────────── */
.dp-brand-loading            {
    display:flex; align-items:center; gap:10px;
    padding:40px 0; color:var(--dp-muted); font-size:14px;
}
.dp-brand-spinner            {
    width:18px; height:18px; border-radius:50%;
    border:2px solid var(--dp-border); border-top-color:var(--dp-navy);
    animation:dp-spin .7s linear infinite; flex-shrink:0;
}
.dp-brand-empty-msg          { color:var(--dp-muted); font-size:14px; padding:20px 0; text-align:center; }

/* ── Scorecard ───────────────────────────────────────────────────── */
.dp-scorecard                { display:grid; grid-template-columns:repeat(auto-fit,minmax(150px,1fr)); gap:12px; margin-bottom:20px; }
.dp-score-card               {
    background:#fff; border:1px solid var(--dp-border);
    border-radius:var(--dp-radius); padding:18px 16px;
    display:flex; flex-direction:column; gap:4px;
}
.dp-score-value              { font-size:28px; font-weight:800; color:var(--dp-navy); line-height:1; }
.dp-score-sub                { font-size:12px; color:var(--dp-muted); }
.dp-score-label              { font-size:11px; font-weight:600; color:#888; text-transform:uppercase; letter-spacing:.05em; margin-top:2px; }
.dp-score-none               { font-size:13px; color:var(--dp-muted); }

/* ── Brand notice ────────────────────────────────────────────────── */
.dp-brand-notice             {
    background:#fffbe6; border:1px solid #f5d78e;
    border-radius:var(--dp-radius); padding:10px 16px;
    font-size:13px; color:#6b4e00; margin-bottom:20px;
}
.dp-brand-link               { color:var(--dp-navy); font-weight:600; text-decoration:underline; cursor:pointer; }
.dp-brand-section-title      { font-size:16px; font-weight:700; color:var(--dp-navy); margin:20px 0 12px; }

/* ── Product grid ────────────────────────────────────────────────── */
.dp-product-grid             { display:grid; grid-template-columns:repeat(auto-fill,minmax(240px,1fr)); gap:14px; }
.dp-product-card             {
    background:#fff; border:1px solid var(--dp-border);
    border-radius:var(--dp-radius); padding:16px;
    display:flex; flex-direction:column; gap:8px;
}
.dp-product-card-head        { display:flex; align-items:flex-start; justify-content:space-between; gap:8px; }
.dp-product-card-title       { font-weight:700; font-size:14px; color:var(--dp-navy); text-decoration:none; line-height:1.3; }
.dp-product-card-title:hover { text-decoration:underline; }
.dp-product-card-score       { display:flex; align-items:center; gap:6px; }
.dp-product-card-score strong { font-size:15px; color:var(--dp-navy); }
.dp-product-card-stats       { display:flex; flex-wrap:wrap; gap:8px; font-size:12px; color:var(--dp-muted); }
.dp-product-card-newest      { width:100%; color:#aaa; }
.dp-product-card-link        { font-size:12px; font-weight:600; margin-top:4px; }
.dp-badge-pending            {
    background:#fef3c7; color:#92400e; font-size:10px; font-weight:700;
    padding:2px 7px; border-radius:10px; white-space:nowrap;
}

/* ── Single-product summary ──────────────────────────────────────── */
.dp-single-product-summary   { display:flex; gap:32px; align-items:center; background:#fff; border:1px solid var(--dp-border); border-radius:var(--dp-radius); padding:24px 28px; margin-top:8px; flex-wrap:wrap; }
.dp-sps-score                { display:flex; flex-direction:column; align-items:center; gap:6px; }
.dp-sps-num                  { font-size:48px; font-weight:800; color:var(--dp-navy); line-height:1; }
.dp-sps-stats                { display:flex; gap:28px; flex-wrap:wrap; }
.dp-sps-stats div            { display:flex; flex-direction:column; align-items:center; gap:3px; }
.dp-sps-stats div            { font-size:22px; font-weight:800; color:var(--dp-navy); }
.dp-sps-stats small          { font-size:11px; color:var(--dp-muted); text-transform:uppercase; letter-spacing:.04em; }

/* ── Review filters ──────────────────────────────────────────────── */
.dp-brand-review-filters     { display:flex; gap:10px; margin-bottom:18px; flex-wrap:wrap; align-items:center; }
.dp-brand-select             {
    border:1.5px solid var(--dp-border); border-radius:var(--dp-radius);
    padding:7px 12px; font-size:13px; font-family:inherit;
    background:#fff; color:var(--dp-navy); cursor:pointer;
    transition:border-color .15s;
}
.dp-brand-select:focus       { outline:none; border-color:var(--dp-navy); }

/* ── Brand review cards ──────────────────────────────────────────── */
.dp-brand-rev-card           {
    background:#fff; border:1px solid var(--dp-border);
    border-radius:var(--dp-radius); padding:18px;
    margin-bottom:12px;
}
.dp-brand-rev-head           { display:flex; justify-content:space-between; align-items:flex-start; gap:12px; margin-bottom:8px; flex-wrap:wrap; }
.dp-brand-rev-meta           { display:flex; align-items:center; gap:8px; flex-wrap:wrap; }
.dp-brand-rev-name           { font-size:14px; color:var(--dp-navy); }
.dp-brand-rev-date           { font-size:11px; color:var(--dp-muted); }
.dp-brand-rev-right          { display:flex; align-items:center; gap:6px; flex-wrap:wrap; flex-shrink:0; }
.dp-brand-rev-product        { font-size:11px; font-weight:600; color:#888; background:var(--dp-bg); border:1px solid var(--dp-border); border-radius:10px; padding:2px 8px; }
.dp-brand-rev-score          { display:flex; align-items:center; gap:8px; margin-bottom:6px; }
.dp-brand-rev-score strong   { font-size:14px; color:var(--dp-navy); font-weight:700; }
.dp-brand-rev-helpful        { font-size:12px; color:var(--dp-muted); margin-left:4px; }
.dp-brand-rev-headline       { font-size:15px; font-weight:700; margin:0 0 4px; color:var(--dp-navy); }
.dp-brand-rev-preview        { font-size:13px; color:#555; margin:0; line-height:1.6; }
.dp-brand-rev-expand         {
    background:none; border:none; font-size:12px; color:var(--dp-navy);
    cursor:pointer; padding:4px 0; font-weight:600; text-decoration:underline; margin-top:4px;
}
.dp-brand-rev-full p         { font-size:13px; line-height:1.7; color:#444; margin:8px 0 0; }
.dp-brand-rev-dims          { display:flex; flex-direction:column; gap:4px; margin-bottom:10px; padding:10px 12px; background:var(--dp-bg); border-radius:6px; border:1px solid var(--dp-border); }
.dp-brand-rev-dim-row       { display:flex; align-items:center; gap:8px; }
.dp-brand-rev-dim-label     { font-size:12px; color:var(--dp-muted); min-width:150px; }
.dp-brand-rev-dim-dots      { display:flex; align-items:center; }
.dp-brand-rev-dim-dots .dp-dot { width:10px; height:10px; margin-right:3px; }
.dp-brand-rev-dim-score     { font-size:12px; font-weight:600; color:var(--dp-navy); }
.dp-brand-pagination         { display:flex; gap:6px; margin-top:16px; }

/* ── Analytics controls ──────────────────────────────────────────── */
.dp-analytics-controls       { display:flex; align-items:center; gap:14px; margin-bottom:20px; flex-wrap:wrap; }
.dp-range-btns               { display:flex; gap:4px; }
.dp-range-btn                {
    background:none; border:1.5px solid var(--dp-border); border-radius:var(--dp-radius);
    padding:6px 14px; font-size:12px; font-weight:600; color:var(--dp-muted);
    cursor:pointer; transition:all .15s;
}
.dp-range-btn:hover          { border-color:var(--dp-navy); color:var(--dp-navy); }
.dp-range-btn.dp-range-active { background:var(--dp-navy); border-color:var(--dp-navy); color:#fff; }

/* ── Analytics grid ──────────────────────────────────────────────── */
.dp-analytics-grid           { display:grid; grid-template-columns:2fr 1fr; gap:14px; }
.dp-analytics-card           {
    background:#fff; border:1px solid var(--dp-border);
    border-radius:var(--dp-radius); padding:20px;
}
.dp-analytics-card-title     { font-size:14px; font-weight:700; color:var(--dp-navy); margin:0 0 14px; }
.dp-velocity-summary         { font-size:12px; color:var(--dp-muted); margin:0 0 10px; }
.dp-velocity-summary em      { color:#b45309; font-style:normal; }
.dp-ac-velocity              { grid-column:1; }
.dp-ac-top-helpful           { grid-column:2; }
.dp-ac-dist                  { grid-column:1 / 2; }
.dp-ac-dims                  { grid-column:2 / 3; }
.dp-ac-specialty             { grid-column:1; }
.dp-ac-impressions           { grid-column:2; }

@media (max-width: 680px) {
    .dp-analytics-grid       { grid-template-columns:1fr; }
    .dp-ac-velocity, .dp-ac-top-helpful, .dp-ac-dist,
    .dp-ac-dims, .dp-ac-specialty, .dp-ac-impressions { grid-column:1; }
}

.dp-chart-wrap               { position:relative; max-height:260px; }
.dp-chart-donut              { max-height:300px; }

/* ── Top helpful card ────────────────────────────────────────────── */
.dp-top-helpful-card         { display:flex; flex-direction:column; gap:8px; }
.dp-top-helpful-card h5      { font-size:14px; font-weight:700; margin:4px 0 0; color:var(--dp-navy); }
.dp-top-helpful-body         { font-size:12px; color:#555; line-height:1.6; margin:0; }
.dp-top-helpful-meta         { display:flex; align-items:center; gap:6px; flex-wrap:wrap; font-size:12px; font-weight:600; color:var(--dp-navy); }
.dp-top-helpful-votes        { font-size:12px; color:var(--dp-muted); }

/* ── Badge impressions table ─────────────────────────────────────── */
.dp-imp-total                { font-size:13px; color:var(--dp-muted); margin:0 0 12px; }
.dp-imp-table                { width:100%; border-collapse:collapse; font-size:12px; }
.dp-imp-table th             { text-align:left; padding:4px 8px 8px 0; font-size:11px; font-weight:700; color:#888; text-transform:uppercase; letter-spacing:.04em; border-bottom:1px solid var(--dp-border); }
.dp-imp-table td             { padding:7px 8px 7px 0; border-bottom:1px solid var(--dp-bg); vertical-align:middle; }
.dp-imp-domain               { width:100%; }
.dp-imp-count                { text-align:right; font-weight:700; color:var(--dp-navy); white-space:nowrap; padding-left:12px; }
.dp-imp-bar                  { height:3px; background:var(--dp-bg); border-radius:2px; margin-top:4px; overflow:hidden; }
.dp-imp-bar-fill             { height:100%; background:var(--dp-navy); border-radius:2px; }

/* ── Account tab ─────────────────────────────────────────────────── */
.dp-account-grid             { display:grid; grid-template-columns:1fr 1fr; gap:24px; }
@media (max-width:580px)     { .dp-account-grid { grid-template-columns:1fr; } }
.dp-account-section h3       { font-size:16px; font-weight:700; color:var(--dp-navy); margin:0 0 14px; }
.dp-account-table            { border-collapse:collapse; font-size:13px; width:100%; }
.dp-account-table th         { text-align:left; padding:6px 12px 6px 0; color:#888; font-weight:600; white-space:nowrap; width:90px; }
.dp-account-table td         { padding:6px 0; color:var(--dp-navy); }
.dp-account-note             { font-size:12px; color:var(--dp-muted); margin:0 0 12px; line-height:1.5; }
.dp-account-products         { list-style:none; padding:0; margin:0; display:flex; flex-direction:column; gap:8px; }
.dp-account-products li      { display:flex; justify-content:space-between; align-items:baseline; gap:12px; font-size:13px; }
.dp-account-products a       { color:var(--dp-navy); font-weight:600; text-decoration:none; }
.dp-account-products a:hover { text-decoration:underline; }
.dp-account-product-meta     { font-size:11px; color:var(--dp-muted); white-space:nowrap; }

/* ── Brand dots display ──────────────────────────────────────────── */
.dp-brand-dots               { display:inline-flex; gap:3px; vertical-align:middle; }

/* ── Brand response (Official Response block) ────────────────────── */
.dp-brand-response           {
    background:#f0f6ff; border:1px solid #c7dcf7;
    border-radius:var(--dp-radius); padding:14px 16px;
    margin-top:14px; margin-bottom:14px;
}
.dp-brand-response-header    { display:flex; align-items:center; gap:10px; flex-wrap:wrap; margin-bottom:8px; }
.dp-brand-response-badge     {
    background:var(--dp-navy); color:#fff;
    font-size:10px; font-weight:700; letter-spacing:.06em; text-transform:uppercase;
    padding:3px 8px; border-radius:10px; white-space:nowrap;
}
.dp-brand-response-author    { font-size:13px; font-weight:600; color:var(--dp-navy); }
.dp-brand-response-date      { font-size:11px; color:var(--dp-muted); margin-left:auto; }
.dp-brand-response-body      { font-size:13px; line-height:1.65; color:#444; margin:0 0 8px; }
.dp-reply-edit-btn           {
    background:none; border:none; font-size:12px; font-weight:600;
    color:var(--dp-navy); cursor:pointer; padding:0; text-decoration:underline;
}
.dp-reply-edit-btn:hover     { opacity:.75; }

/* ── Reply wrap (Add Official Response toggle) ───────────────────── */
.dp-reply-wrap               { margin-top:14px; }
.dp-reply-toggle-btn         {
    background:none; border:1.5px solid var(--dp-navy); border-radius:var(--dp-radius);
    color:var(--dp-navy); font-size:12px; font-weight:600;
    padding:6px 14px; cursor:pointer; transition:all .15s;
}
.dp-reply-toggle-btn:hover   { background:var(--dp-navy); color:#fff; }

/* ── Reply / edit form ───────────────────────────────────────────── */
.dp-reply-form               { margin-top:0; }
.dp-reply-edit-form          { margin-top:10px; }
.dp-review-foot .dp-reply-toggle-btn { padding:3px 10px; font-size:11px; border-radius:4px; border-width:1px; line-height:1.6; }
.dp-reply-textarea           {
    width:100%; box-sizing:border-box;
    border:1.5px solid var(--dp-border); border-radius:var(--dp-radius);
    padding:10px 12px; font-size:13px; font-family:inherit;
    resize:vertical; min-height:80px;
    transition:border-color .15s;
}
.dp-reply-textarea:focus     { outline:none; border-color:var(--dp-navy); }
.dp-reply-error              {
    font-size:12px; color:#b91c1c; background:#fef2f2;
    border:1px solid #fecaca; border-radius:4px;
    padding:6px 10px; margin-top:6px;
}
.dp-reply-actions            { display:flex; gap:8px; margin-top:8px; }
.dp-reply-submit-btn,
.dp-reply-update-btn         {
    background:var(--dp-navy); color:#fff; border:none;
    border-radius:var(--dp-radius); padding:8px 18px;
    font-size:13px; font-weight:600; cursor:pointer; transition:opacity .15s;
}
.dp-reply-submit-btn:hover,
.dp-reply-update-btn:hover   { opacity:.85; }
.dp-reply-submit-btn:disabled,
.dp-reply-update-btn:disabled { opacity:.55; cursor:not-allowed; }
.dp-reply-cancel-btn,
.dp-reply-editcancel-btn     {
    background:none; border:1.5px solid var(--dp-border);
    border-radius:var(--dp-radius); padding:7px 14px;
    font-size:13px; color:var(--dp-muted); cursor:pointer; transition:all .15s;
}
.dp-reply-cancel-btn:hover,
.dp-reply-editcancel-btn:hover { border-color:var(--dp-navy); color:var(--dp-navy); }

/* ═══════════════════════════════════════════════════════════════════
   DISTRIBUTOR ANALYTICS DASHBOARD  [dp_reviews_distributor_dashboard]
   ═══════════════════════════════════════════════════════════════════ */

/* ── Shell ───────────────────────────────────────────────────────── */
.dp-dist-wrap                { max-width:960px; font-family:inherit; }

/* ── Header ──────────────────────────────────────────────────────── */
.dp-dist-header              { display:flex; align-items:flex-start; justify-content:space-between; margin-bottom:24px; flex-wrap:wrap; gap:10px; }
.dp-dist-company             { font-size:22px; font-weight:800; color:var(--dp-navy); margin:0 0 6px; }
.dp-dist-tier                {
    display:inline-block; font-size:11px; font-weight:700; letter-spacing:.07em; text-transform:uppercase;
    padding:3px 10px; border-radius:12px; background:var(--dp-navy); color:#fff;
}

/* ── Score cards (KPIs) ──────────────────────────────────────────── */
.dp-dist-score-icon          { font-size:20px; margin-bottom:4px; }

/* ── Charts row ──────────────────────────────────────────────────── */
.dp-dist-charts-row          { display:grid; grid-template-columns:3fr 2fr; gap:14px; margin-top:14px; }
.dp-dist-chart-card          {
    background:#fff; border:1px solid var(--dp-border);
    border-radius:var(--dp-radius); padding:20px;
}
.dp-dist-chart-card.dp-dist-chart-full { grid-column:1 / -1; }
.dp-dist-chart-wide          { grid-column:1; }
.dp-dist-chart-title         { font-size:14px; font-weight:700; color:var(--dp-navy); margin:0 0 4px; }
.dp-dist-chart-subtitle      { font-size:12px; color:var(--dp-muted); margin:0 0 14px; line-height:1.4; }
.dp-dist-canvas-wrap         { position:relative; height:200px; }
.dp-dist-canvas-donut        { height:190px; }
.dp-dist-canvas-tall         { height:260px; }

/* ── Rating legend ───────────────────────────────────────────────── */
.dp-dist-rating-legend       { margin-top:12px; display:flex; flex-direction:column; gap:5px; }
.dp-dist-legend-row          { display:flex; align-items:center; gap:7px; font-size:12px; }
.dp-dist-legend-dot          { width:10px; height:10px; border-radius:50%; flex-shrink:0; }
.dp-dist-legend-label        { flex:1; color:var(--dp-text); }
.dp-dist-legend-val          { font-weight:700; color:var(--dp-navy); }

/* ── Impressions controls ────────────────────────────────────────── */
.dp-dist-imp-controls        { display:flex; align-items:center; gap:12px; margin-bottom:18px; flex-wrap:wrap; }
.dp-dist-imp-total           { font-size:13px; color:var(--dp-muted); margin-top:10px; }
.dp-dist-section-intro       { font-size:13px; color:var(--dp-muted); line-height:1.6; margin-bottom:18px; }
.dp-dist-section-intro strong { color:var(--dp-navy); }

/* ── Review filters ──────────────────────────────────────────────── */
.dp-dist-rev-filters         { display:flex; gap:10px; margin-bottom:16px; flex-wrap:wrap; }

/* ── Verified badge ──────────────────────────────────────────────── */
.dp-dist-verified-badge      {
    display:inline-flex; align-items:center; gap:3px;
    font-size:11px; font-weight:700; color:var(--dp-green);
    background:#e8f5f0; border:1px solid #b3dfd2;
    padding:2px 7px; border-radius:10px;
}

/* ── Specialty label ─────────────────────────────────────────────── */
.dp-dist-specialty           { font-size:11px; color:var(--dp-muted); margin:4px 0 0; font-style:italic; }

/* ── Dots display ────────────────────────────────────────────────── */
.dp-dist-dots                { display:inline-flex; gap:3px; vertical-align:middle; margin-right:4px; }

/* ── Pagination ──────────────────────────────────────────────────── */
.dp-dist-pagination          { display:flex; gap:6px; margin-top:16px; flex-wrap:wrap; }
.dp-dist-page-btn            {
    background:#fff; border:1.5px solid var(--dp-border);
    border-radius:var(--dp-radius); padding:5px 13px;
    font-size:13px; font-weight:600; color:var(--dp-muted);
    cursor:pointer; transition:all .15s;
}
.dp-dist-page-btn:hover      { border-color:var(--dp-navy); color:var(--dp-navy); }
.dp-dist-page-btn.dp-dist-page-active { background:var(--dp-navy); border-color:var(--dp-navy); color:#fff; }

/* ── Responsive ──────────────────────────────────────────────────── */
@media (max-width:680px) {
    .dp-dist-charts-row      { grid-template-columns:1fr; }
    .dp-dist-chart-wide      { grid-column:1; }
    .dp-dist-imp-controls    { flex-direction:column; align-items:flex-start; }
}

/* ── Invitation banner (review form) ─────────────────────────────── */
.dp-invitation-banner {
    display:flex; align-items:center; gap:8px;
    background:#f0fdf4; border:1px solid #bbf7d0;
    border-radius:var(--dp-radius); padding:10px 14px;
    font-size:13px; color:#166534; margin-bottom:16px;
}
.dp-invitation-banner svg { flex-shrink:0; color:#16a34a; }

/* ── [dp_brand_invitation_links] shortcode ───────────────────────── */
.dp-inv-wrap                 { font-family:inherit; }
.dp-inv-toolbar              { display:flex; align-items:center; gap:10px; margin-bottom:14px; flex-wrap:wrap; }
.dp-inv-search               { flex:1; min-width:180px; padding:7px 12px; border:1.5px solid var(--dp-border); border-radius:var(--dp-radius); font-size:13px; }
.dp-inv-search:focus         { outline:none; border-color:var(--dp-navy); }
.dp-inv-filter               { padding:7px 10px; border:1.5px solid var(--dp-border); border-radius:var(--dp-radius); font-size:13px; background:#fff; cursor:pointer; }
.dp-inv-filter:focus         { outline:none; border-color:var(--dp-navy); }
.dp-inv-per-page             { display:flex; align-items:center; gap:4px; font-size:13px; color:var(--dp-muted); }
.dp-inv-per-page button      { background:none; border:1.5px solid var(--dp-border); border-radius:var(--dp-radius); padding:4px 10px; font-size:12px; font-weight:600; cursor:pointer; transition:all .15s; }
.dp-inv-per-page button.active,
.dp-inv-per-page button:hover { border-color:var(--dp-navy); color:var(--dp-navy); background:#eef2f8; }
.dp-inv-count                { font-size:13px; color:var(--dp-muted); margin-left:auto; }
.dp-inv-table-wrap           { overflow-x:auto; }
.dp-inv-table                { width:100%; border-collapse:collapse; font-size:13px; }
.dp-inv-table th             { background:#f8f9fb; color:var(--dp-navy); font-weight:700; text-align:left; padding:10px 14px; border-bottom:2px solid var(--dp-border); white-space:nowrap; }
.dp-inv-table td             { padding:10px 14px; border-bottom:1px solid var(--dp-border); vertical-align:middle; }
.dp-inv-table tr:last-child td { border-bottom:none; }
.dp-inv-table tr:hover td    { background:#fafbfc; }
.dp-inv-product-title        { font-weight:600; color:var(--dp-navy); }
.dp-inv-link-cell            { display:flex; align-items:center; gap:6px; }
.dp-inv-link-url             { font-family:monospace; font-size:11px; color:var(--dp-muted); white-space:nowrap; overflow:hidden; text-overflow:ellipsis; max-width:240px; }
.dp-inv-copy-btn             { flex-shrink:0; background:#eef2f8; border:none; border-radius:var(--dp-radius); padding:4px 10px; font-size:12px; font-weight:600; color:var(--dp-navy); cursor:pointer; transition:background .15s; white-space:nowrap; }
.dp-inv-copy-btn:hover       { background:#dbe4f0; }
.dp-inv-copy-btn.copied      { background:#d1fae5; color:#065f46; }
.dp-inv-regen-btn            { flex-shrink:0; background:none; border:1.5px solid var(--dp-border); border-radius:var(--dp-radius); padding:3px 9px; font-size:11px; font-weight:600; color:var(--dp-muted); cursor:pointer; transition:all .15s; white-space:nowrap; }
.dp-inv-regen-btn:hover      { border-color:var(--dp-navy); color:var(--dp-navy); }
.dp-inv-stats                { font-size:11px; color:var(--dp-muted); margin-top:3px; }
.dp-inv-pagination           { display:flex; gap:6px; margin-top:14px; flex-wrap:wrap; align-items:center; }
.dp-inv-page-btn             { background:#fff; border:1.5px solid var(--dp-border); border-radius:var(--dp-radius); padding:5px 13px; font-size:13px; font-weight:600; color:var(--dp-muted); cursor:pointer; transition:all .15s; }
.dp-inv-page-btn:hover,
.dp-inv-page-btn.active      { border-color:var(--dp-navy); color:var(--dp-navy); background:#eef2f8; }
.dp-inv-empty                { text-align:center; padding:32px; color:var(--dp-muted); }
@media (max-width:640px) {
    .dp-inv-toolbar           { flex-direction:column; align-items:stretch; }
    .dp-inv-count             { margin-left:0; }
    .dp-inv-link-url          { max-width:120px; }
}

/* ── [dp_demo_request] / [dp_sample_request] CTA buttons ────────────── */
/* Design: CTA Buttons.html — dark (navy) and light (paper) variants.    */
/* Font: Inter Tight 700, loaded separately as dp-inter-tight handle.    */

.dp-cta--mark,
.dp-cta--mark-light {
    display: inline-flex;
    align-items: center;
    gap: 12px;
    height: 52px;
    padding: 0 0 0 6px;
    border-radius: 6px;
    font-family: 'Inter Tight','Inter',system-ui,sans-serif;
    font-size: 14px;
    font-weight: 600;
    letter-spacing: -0.005em;
    line-height: 1;
    cursor: pointer;
    text-decoration: none;
    user-select: none;
    -webkit-tap-highlight-color: transparent;
    appearance: none;
    -webkit-appearance: none;
    transition:
        transform .18s cubic-bezier(.2,.7,.2,1),
        border-color .18s ease,
        box-shadow .18s ease;
}
.dp-cta--mark:active,
.dp-cta--mark-light:active  { transform: translateY(1px); }
.dp-cta--mark:focus-visible,
.dp-cta--mark-light:focus-visible {
    outline: 2px solid #30D02F;
    outline-offset: 3px;
}

/* Dark variant — navy-2 (#142655) background, paper (#F6F4EE) text */
.dp-cta--mark {
    background: #142655;
    color: #F6F4EE;
    border: 1px solid rgba(246,244,238,0.20);
    box-shadow:
        0 1px 0 rgba(255,255,255,0.04) inset,
        0 8px 20px -8px rgba(0,0,0,0.55);
}
.dp-cta--mark:hover {
    transform: translateY(-1px);
    border-color: rgba(246,244,238,0.32);
}

/* Light variant — paper (#F6F4EE) background, navy (#0B1B3B) text */
.dp-cta--mark-light {
    background: #F6F4EE;
    color: #0B1B3B;
    border: 1px solid rgba(11,27,59,0.14);
    box-shadow:
        0 1px 0 rgba(255,255,255,0.70) inset,
        0 8px 20px -10px rgba(11,27,59,0.30);
}
.dp-cta--mark-light:hover {
    transform: translateY(-1px);
    border-color: rgba(11,27,59,0.30);
    box-shadow:
        0 1px 0 rgba(255,255,255,0.70) inset,
        0 12px 26px -10px rgba(11,27,59,0.34);
}

/* Icon tile — 40×40 rounded square left of the text */
.dp-cta--mark    .dp-cta__mark {
    background: #F6F4EE;
    box-shadow: 0 1px 0 rgba(255,255,255,0.60) inset;
}
.dp-cta--mark-light .dp-cta__mark {
    background: #0B1B3B;
    box-shadow:
        0 1px 0 rgba(255,255,255,0.06) inset,
        0 1px 2px rgba(11,27,59,0.20);
}
.dp-cta__mark {
    width: 40px;
    height: 40px;
    border-radius: 4px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    flex-shrink: 0;
}

/* Two-line text block */
.dp-cta__text {
    display: inline-flex;
    flex-direction: column;
    gap: 3px;
    text-align: left;
    line-height: 1;
}
.dp-cta__eyebrow {
    font-size: 9px;
    letter-spacing: 2.2px;
    text-transform: uppercase;
    font-weight: 700;
    line-height: 1;
}
.dp-cta--mark     .dp-cta__eyebrow { color: rgba(246,244,238,0.62); }
.dp-cta--mark-light .dp-cta__eyebrow { color: rgba(11,27,59,0.55); }
.dp-cta__label {
    font-size: 14px;
    font-weight: 700;
    letter-spacing: -0.01em;
    line-height: 1;
}
.dp-cta--mark     .dp-cta__label { color: #F6F4EE; }
.dp-cta--mark-light .dp-cta__label { color: #0B1B3B; }

/* Arrow chevron cell — hairline left border, 44px wide */
.dp-cta__arrow-wrap {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    align-self: stretch;
    width: 44px;
}
.dp-cta--mark     .dp-cta__arrow-wrap { border-left: 1px solid rgba(246,244,238,0.10); color: #F6F4EE; }
.dp-cta--mark-light .dp-cta__arrow-wrap { border-left: 1px solid rgba(11,27,59,0.12);  color: #0B1B3B; }
.dp-cta__arrow { transition: transform .18s cubic-bezier(.2,.7,.2,1); }
.dp-cta--mark:hover     .dp-cta__arrow,
.dp-cta--mark-light:hover .dp-cta__arrow { transform: translateX(3px); }

/* ── Request button wrapper ──────────────────────────────────────── */
.dp-request-wrap {
    display: inline-block;
    position: relative;
}

/* ── Request modal overlay ───────────────────────────────────────── */
.dp-request-modal-overlay {
    display: none;
    position: fixed;
    inset: 0;
    background: rgba(11,27,59,.52);
    z-index: 99990;
    align-items: center;
    justify-content: center;
}
.dp-request-modal-overlay.is-open {
    display: flex;
}
.dp-request-modal {
    background: #fff;
    border-radius: 12px;
    padding: 36px 32px 32px;
    max-width: 480px;
    width: calc(100% - 32px);
    position: relative;
    box-shadow: 0 12px 60px rgba(11,27,59,.22), 0 2px 8px rgba(11,27,59,.10);
    max-height: 90vh;
    overflow-y: auto;
}
.dp-request-modal__close {
    position: absolute;
    top: 14px;
    right: 16px;
    background: none;
    border: none;
    font-size: 18px;
    color: #888;
    cursor: pointer;
    line-height: 1;
    padding: 4px 6px;
    border-radius: 4px;
    transition: color .15s, background .15s;
}
.dp-request-modal__close:hover {
    color: #0B1B3B;
    background: #f0ede6;
}

/* ── Modal states ────────────────────────────────────────────────── */
.dp-req-state[hidden] { display: none !important; }

.dp-req-icon {
    font-size: 36px;
    margin-bottom: 12px;
    line-height: 1;
}
.dp-req-icon--success {
    color: #30D02F;
}
.dp-req-title {
    font-family: 'Inter Tight', system-ui, sans-serif;
    font-size: 20px;
    font-weight: 700;
    color: #0B1B3B;
    margin: 0 0 8px;
    line-height: 1.2;
}
.dp-req-desc {
    font-size: 14px;
    color: #555;
    margin: 0 0 20px;
    line-height: 1.55;
}
.dp-req-next-eligible {
    font-size: 13px;
    color: #888;
    margin: 0 0 16px;
}

/* Gate links */
.dp-req-gate-links {
    display: flex;
    gap: 10px;
    flex-wrap: wrap;
}

/* Primary button */
.dp-req-btn {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    background: #142655;
    color: #F6F4EE;
    border: none;
    border-radius: 6px;
    padding: 11px 22px;
    font-size: 14px;
    font-weight: 700;
    font-family: 'Inter Tight', system-ui, sans-serif;
    cursor: pointer;
    text-decoration: none;
    transition: background .15s, transform .12s;
    line-height: 1;
}
.dp-req-btn:hover {
    background: #0B1B3B;
    transform: translateY(-1px);
    color: #F6F4EE;
}
.dp-req-btn--secondary {
    background: transparent;
    color: #142655;
    border: 1px solid rgba(20,38,85,.28);
    box-shadow: none;
}
.dp-req-btn--secondary:hover {
    background: #f0ede6;
    color: #0B1B3B;
}

/* Form fields */
.dp-req-form {
    display: flex;
    flex-direction: column;
    gap: 14px;
}
.dp-req-field {
    display: flex;
    flex-direction: column;
    gap: 4px;
}
.dp-req-field label {
    font-size: 12px;
    font-weight: 700;
    color: #0B1B3B;
    letter-spacing: .02em;
    text-transform: uppercase;
}
.dp-req-optional {
    font-weight: 400;
    color: #888;
    text-transform: none;
    letter-spacing: 0;
    font-size: 11px;
}
.dp-req-field input[type=text],
.dp-req-field input[type=email],
.dp-req-field input[type=tel],
.dp-req-field textarea {
    border: 1px solid #d8d4cb;
    border-radius: 5px;
    padding: 8px 10px;
    font-size: 14px;
    font-family: inherit;
    color: #1a1a1a;
    background: #fff;
    width: 100%;
    box-sizing: border-box;
    transition: border-color .15s;
}
.dp-req-field input:focus,
.dp-req-field textarea:focus {
    outline: none;
    border-color: #142655;
    box-shadow: 0 0 0 2px rgba(20,38,85,.12);
}
.dp-req-field textarea {
    resize: vertical;
    min-height: 68px;
}
.dp-req-field-row {
    display: flex;
    gap: 8px;
}
.dp-req-field-row input {
    flex: 1;
    min-width: 0;
}
.dp-req-form .dp-req-btn {
    margin-top: 4px;
    align-self: flex-start;
}
.dp-req-error {
    font-size: 13px;
    color: #c0392b;
    background: #fdf3f2;
    border: 1px solid #f5c6c2;
    border-radius: 5px;
    padding: 8px 12px;
}

/* ── [dp_requests_dashboard] shortcode ───────────────────────────── */
.dp-req-dash {
    font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', sans-serif;
    color: #1a1a1a;
    max-width: 900px;
}
.dp-req-dash h2 {
    font-size: 22px;
    font-weight: 700;
    margin: 0 0 4px;
}
.dp-req-dash .dp-req-dash__subtitle {
    color: #666;
    font-size: 14px;
    margin: 0 0 20px;
}
.dp-req-dash__tabs {
    display: flex;
    gap: 6px;
    flex-wrap: wrap;
    margin-bottom: 18px;
}
.dp-req-dash__tab {
    background: #f5f4f0;
    border: 1px solid #dedad0;
    border-radius: 5px;
    padding: 6px 14px;
    font-size: 13px;
    font-weight: 600;
    cursor: pointer;
    color: #555;
    transition: background .12s, color .12s;
}
.dp-req-dash__tab.active,
.dp-req-dash__tab:hover {
    background: #142655;
    color: #F6F4EE;
    border-color: #142655;
}
.dp-req-dash__loading {
    color: #888;
    font-size: 14px;
    padding: 24px 0;
}
.dp-req-dash__empty {
    color: #888;
    font-size: 14px;
    padding: 24px 0;
}
.dp-req-dash__table {
    width: 100%;
    border-collapse: collapse;
    font-size: 13px;
}
.dp-req-dash__table th {
    text-align: left;
    color: #888;
    font-size: 11px;
    font-weight: 700;
    letter-spacing: .04em;
    text-transform: uppercase;
    padding: 0 10px 8px 0;
    border-bottom: 1px solid #e8e6df;
}
.dp-req-dash__table td {
    padding: 12px 10px 12px 0;
    border-bottom: 1px solid #f0ede6;
    vertical-align: top;
}
.dp-req-dash__table tr:last-child td {
    border-bottom: none;
}
.dp-req-contact-name {
    font-weight: 700;
    color: #0B1B3B;
}
.dp-req-contact-email {
    color: #666;
    font-size: 12px;
}
.dp-req-history-warn {
    display: inline-block;
    font-size: 11px;
    font-weight: 700;
    color: #b07d00;
    background: #fef9e7;
    border: 1px solid #f5d87a;
    border-radius: 3px;
    padding: 1px 6px;
    margin-top: 3px;
}
.dp-req-status-select {
    border: 1px solid #ccc;
    border-radius: 4px;
    padding: 4px 8px;
    font-size: 12px;
    font-weight: 600;
    cursor: pointer;
    background: #fff;
}
.dp-req-status-select[data-status=pending]   { color: #b07d00; border-color: #e8c53d; }
.dp-req-status-select[data-status=fulfilled] { color: #2d7a3a; border-color: #8ecf98; }
.dp-req-status-select[data-status=cancelled] { color: #c0392b; border-color: #f5c6c2; }
.dp-req-notes-wrap {
    display: flex;
    flex-direction: column;
    gap: 5px;
    min-width: 160px;
}
.dp-req-notes-wrap textarea {
    border: 1px solid #dedad0;
    border-radius: 4px;
    padding: 5px 7px;
    font-size: 12px;
    font-family: inherit;
    resize: vertical;
    min-height: 52px;
    width: 100%;
    box-sizing: border-box;
}
.dp-req-notes-wrap textarea:focus {
    outline: none;
    border-color: #142655;
}
.dp-req-save-btn {
    background: #142655;
    color: #fff;
    border: none;
    border-radius: 4px;
    padding: 5px 12px;
    font-size: 12px;
    font-weight: 700;
    cursor: pointer;
    align-self: flex-start;
}
.dp-req-save-btn:hover { background: #0B1B3B; }
.dp-req-save-ok { color: #2d7a3a; font-size: 11px; display: none; }
