/* DigiSell Pro — Public Styles v1.0.0
   All classes namespaced .dsp- — safe on any WP theme. No global overrides.
*/
.dsp-wrap {
  --dsp-primary:#2563EB;--dsp-primary-dk:#1D4ED8;--dsp-primary-lt:#EFF6FF;
  --dsp-success:#16A34A;--dsp-success-lt:#DCFCE7;
  --dsp-danger:#DC2626;--dsp-danger-lt:#FEE2E2;
  --dsp-warning:#D97706;--dsp-warning-lt:#FEF3C7;
  --dsp-gray-50:#F9FAFB;--dsp-gray-100:#F3F4F6;--dsp-gray-200:#E5E7EB;
  --dsp-gray-400:#9CA3AF;--dsp-gray-600:#4B5563;--dsp-gray-800:#1F2937;
  --dsp-radius:10px;
  --dsp-shadow:0 1px 3px rgba(0,0,0,0.08),0 1px 2px rgba(0,0,0,0.05);
  --dsp-shadow-md:0 4px 6px rgba(0,0,0,0.07),0 2px 4px rgba(0,0,0,0.06);
  --dsp-shadow-lg:0 10px 15px rgba(0,0,0,0.08),0 4px 6px rgba(0,0,0,0.05);
  --dsp-font:-apple-system,BlinkMacSystemFont,'Segoe UI',Roboto,sans-serif;
  font-family:var(--dsp-font);color:var(--dsp-gray-800);box-sizing:border-box;
}
.dsp-wrap *,.dsp-wrap *::before,.dsp-wrap *::after{box-sizing:inherit}
.dsp-product-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:24px;padding:8px 0 32px}
.dsp-product-card{background:#fff;border:1px solid var(--dsp-gray-200);border-radius:var(--dsp-radius);overflow:hidden;box-shadow:var(--dsp-shadow);display:flex;flex-direction:column;transition:box-shadow .2s ease,transform .2s ease}
.dsp-product-card:hover{box-shadow:var(--dsp-shadow-lg);transform:translateY(-2px)}
.dsp-card-image{position:relative;width:100%;aspect-ratio:16/9;overflow:hidden;background:var(--dsp-gray-100)}
.dsp-card-image img{width:100%;height:100%;object-fit:cover;display:block}
.dsp-card-image-placeholder{width:100%;height:100%;display:flex;align-items:center;justify-content:center;background:linear-gradient(135deg,var(--dsp-primary-lt) 0%,var(--dsp-gray-100) 100%);color:var(--dsp-primary);font-size:48px}
.dsp-badge-discount{position:absolute;top:10px;left:10px;background:var(--dsp-danger);color:#fff;font-size:11px;font-weight:700;padding:3px 8px;border-radius:4px;letter-spacing:.5px;text-transform:uppercase}
.dsp-card-body{padding:18px;flex:1;display:flex;flex-direction:column;gap:8px}
.dsp-card-title{font-size:16px;font-weight:700;line-height:1.35;color:var(--dsp-gray-800);margin:0}
.dsp-card-desc{font-size:13px;color:var(--dsp-gray-600);line-height:1.55;margin:0;flex:1}
.dsp-price-row{display:flex;align-items:center;gap:8px;margin-top:4px}
.dsp-price-final{font-size:20px;font-weight:800;color:var(--dsp-primary)}
.dsp-price-original{font-size:14px;color:var(--dsp-gray-400);text-decoration:line-through}
.dsp-card-actions{padding:0 18px 18px;display:flex;gap:10px}
.dsp-btn{display:inline-flex;align-items:center;justify-content:center;gap:6px;font-size:14px;font-weight:600;padding:9px 18px;border-radius:7px;border:none;cursor:pointer;text-decoration:none;transition:all .15s ease;line-height:1;white-space:nowrap;font-family:var(--dsp-font)}
.dsp-btn:focus-visible{outline:2px solid var(--dsp-primary);outline-offset:2px}
.dsp-btn-primary{background:var(--dsp-primary);color:#fff;flex:1}
.dsp-btn-primary:hover{background:var(--dsp-primary-dk);color:#fff;text-decoration:none}
.dsp-btn-outline{background:transparent;color:var(--dsp-primary);border:1.5px solid var(--dsp-primary)}
.dsp-btn-outline:hover{background:var(--dsp-primary-lt);text-decoration:none}
.dsp-btn-success{background:var(--dsp-success);color:#fff}
.dsp-btn-success:hover{background:#15803D;color:#fff;text-decoration:none}
.dsp-btn-lg{font-size:16px;padding:13px 28px}
.dsp-btn-sm{font-size:12px;padding:6px 12px}
.dsp-btn:disabled{opacity:.5;cursor:not-allowed}
.dsp-product-detail{max-width:860px;margin:0 auto}
.dsp-detail-grid{display:grid;grid-template-columns:1fr 1fr;gap:40px;align-items:start;margin-bottom:40px}
@media(max-width:640px){.dsp-detail-grid{grid-template-columns:1fr}}
.dsp-detail-image{border-radius:var(--dsp-radius);overflow:hidden;aspect-ratio:4/3;background:var(--dsp-gray-100)}
.dsp-detail-image img{width:100%;height:100%;object-fit:cover;display:block}
.dsp-detail-info{display:flex;flex-direction:column;gap:16px}
.dsp-detail-title{font-size:26px;font-weight:800;margin:0;line-height:1.25}
.dsp-detail-desc{font-size:15px;line-height:1.7;color:var(--dsp-gray-600)}
.dsp-detail-price-box{background:var(--dsp-gray-50);border:1px solid var(--dsp-gray-200);border-radius:var(--dsp-radius);padding:20px}
.dsp-detail-full-desc{background:#fff;border:1px solid var(--dsp-gray-200);border-radius:var(--dsp-radius);padding:28px;font-size:15px;line-height:1.75;color:var(--dsp-gray-600)}
.dsp-download-box{max-width:560px;margin:0 auto;text-align:center}
.dsp-download-card{background:#fff;border:1px solid var(--dsp-gray-200);border-radius:16px;padding:48px 40px;box-shadow:var(--dsp-shadow-lg)}
.dsp-download-icon{font-size:56px;margin-bottom:16px}
.dsp-download-title{font-size:24px;font-weight:800;margin:0 0 8px}
.dsp-download-subtitle{font-size:15px;color:var(--dsp-gray-600);margin:0 0 32px}
.dsp-download-notice{margin-top:24px;background:var(--dsp-warning-lt);border:1px solid #FDE68A;border-radius:8px;padding:14px 16px;font-size:13px;color:#92400E;text-align:left}
.dsp-download-count{margin-top:16px;font-size:13px;color:var(--dsp-gray-400)}
.dsp-download-limit-reached{background:var(--dsp-danger-lt);border:1px solid #FECACA;border-radius:8px;padding:16px;color:var(--dsp-danger);font-size:14px;font-weight:600}
.dsp-alert{padding:14px 18px;border-radius:8px;font-size:14px;margin-bottom:16px;display:flex;align-items:flex-start;gap:8px}
.dsp-alert-error{background:var(--dsp-danger-lt);color:#991B1B;border:1px solid #FECACA}
.dsp-alert-success{background:var(--dsp-success-lt);color:#166534;border:1px solid #86EFAC}
.dsp-alert-info{background:var(--dsp-primary-lt);color:#1E40AF;border:1px solid #BFDBFE}
.dsp-portal-wrap{max-width:900px;margin:0 auto}
.dsp-auth-box{max-width:420px;margin:0 auto;background:#fff;border:1px solid var(--dsp-gray-200);border-radius:16px;padding:40px;box-shadow:var(--dsp-shadow-md)}
.dsp-auth-title{font-size:22px;font-weight:800;margin:0 0 4px}
.dsp-auth-subtitle{font-size:14px;color:var(--dsp-gray-600);margin:0 0 28px}
.dsp-tabs{display:flex;gap:4px;border-bottom:2px solid var(--dsp-gray-200);margin-bottom:28px}
.dsp-tab-btn{padding:10px 18px;font-size:14px;font-weight:600;color:var(--dsp-gray-600);background:none;border:none;border-bottom:2px solid transparent;margin-bottom:-2px;cursor:pointer;transition:all .15s;font-family:var(--dsp-font)}
.dsp-tab-btn.active,.dsp-tab-btn:hover{color:var(--dsp-primary);border-bottom-color:var(--dsp-primary)}
.dsp-tab-pane{display:none}.dsp-tab-pane.active{display:block}
.dsp-form-group{margin-bottom:16px}
.dsp-label{display:block;font-size:13px;font-weight:600;color:var(--dsp-gray-800);margin-bottom:5px}
.dsp-input{display:block;width:100%;padding:10px 12px;font-size:14px;border:1.5px solid var(--dsp-gray-200);border-radius:7px;background:#fff;color:var(--dsp-gray-800);transition:border-color .15s;font-family:var(--dsp-font)}
.dsp-input:focus{outline:none;border-color:var(--dsp-primary);box-shadow:0 0 0 3px rgba(37,99,235,.1)}
.dsp-input-hint{font-size:12px;color:var(--dsp-gray-400);margin-top:4px}
.dsp-dashboard-header{background:var(--dsp-primary);color:#fff;border-radius:var(--dsp-radius);padding:24px 28px;margin-bottom:24px;display:flex;justify-content:space-between;align-items:center;flex-wrap:wrap;gap:12px}
.dsp-dashboard-header h3{margin:0;font-size:20px;font-weight:700}
.dsp-dashboard-header p{margin:4px 0 0;font-size:14px;opacity:.85}
.dsp-stats-row{display:grid;grid-template-columns:repeat(auto-fit,minmax(160px,1fr));gap:16px;margin-bottom:28px}
.dsp-stat-card{background:#fff;border:1px solid var(--dsp-gray-200);border-radius:var(--dsp-radius);padding:20px;text-align:center;box-shadow:var(--dsp-shadow)}
.dsp-stat-value{font-size:26px;font-weight:800;color:var(--dsp-primary)}
.dsp-stat-label{font-size:11px;color:var(--dsp-gray-600);margin-top:4px;font-weight:600;text-transform:uppercase;letter-spacing:.5px}
.dsp-table-wrap{overflow-x:auto;border-radius:var(--dsp-radius);border:1px solid var(--dsp-gray-200)}
.dsp-table{width:100%;border-collapse:collapse;font-size:14px;background:#fff}
.dsp-table th{background:var(--dsp-gray-50);padding:12px 16px;text-align:left;font-size:11px;font-weight:700;color:var(--dsp-gray-600);text-transform:uppercase;letter-spacing:.5px;border-bottom:1px solid var(--dsp-gray-200)}
.dsp-table td{padding:13px 16px;border-bottom:1px solid var(--dsp-gray-100);color:var(--dsp-gray-800);vertical-align:middle}
.dsp-table tr:last-child td{border-bottom:none}
.dsp-table tr:hover td{background:var(--dsp-gray-50)}
.dsp-badge{display:inline-block;font-size:11px;font-weight:700;padding:3px 9px;border-radius:99px;letter-spacing:.3px;text-transform:uppercase}
.dsp-badge-pending{background:var(--dsp-warning-lt);color:var(--dsp-warning)}
.dsp-badge-approved{background:var(--dsp-success-lt);color:var(--dsp-success)}
.dsp-badge-paid{background:#EDE9FE;color:#6D28D9}
.dsp-badge-rejected{background:var(--dsp-danger-lt);color:var(--dsp-danger)}
.dsp-ref-link-box{display:flex;gap:8px;margin-top:12px}
.dsp-ref-link-input{flex:1;padding:9px 12px;border:1.5px solid var(--dsp-gray-200);border-radius:7px;font-size:13px;background:var(--dsp-gray-50);color:var(--dsp-gray-600);font-family:monospace}
.dsp-aff-product-card{background:#fff;border:1px solid var(--dsp-gray-200);border-radius:var(--dsp-radius);padding:18px;margin-bottom:14px;display:flex;gap:16px;align-items:flex-start;box-shadow:var(--dsp-shadow)}
.dsp-aff-product-img{width:72px;height:72px;border-radius:8px;object-fit:cover;background:var(--dsp-gray-100);flex-shrink:0}
.dsp-aff-product-info{flex:1}
.dsp-aff-product-name{font-weight:700;font-size:15px;margin:0 0 4px}
.dsp-aff-product-comm{font-size:13px;color:var(--dsp-success);font-weight:600}
.dsp-aff-product-price{font-size:13px;color:var(--dsp-gray-600)}
.dsp-spinner{display:inline-block;width:18px;height:18px;border:2px solid rgba(255,255,255,.4);border-top-color:#fff;border-radius:50%;animation:dsp-spin .7s linear infinite;vertical-align:middle}
@keyframes dsp-spin{to{transform:rotate(360deg)}}
.dsp-empty{text-align:center;padding:48px 20px;color:var(--dsp-gray-400)}
.dsp-empty-icon{font-size:40px;margin-bottom:8px}
@media(max-width:480px){.dsp-auth-box{padding:28px 20px}.dsp-download-card{padding:32px 20px}.dsp-dashboard-header{padding:18px 16px}.dsp-card-actions{flex-direction:column}}

@keyframes spin {
  to { transform: rotate(360deg); }
}
.dsp-spinner {
  display: inline-block;
  width: 14px;
  height: 14px;
  border: 2px solid rgba(0,0,0,.15);
  border-top-color: currentColor;
  border-radius: 50%;
  animation: spin .7s linear infinite;
  vertical-align: middle;
  margin-right: 6px;
}
