/* DSP Core – Front-End (neutral, für Elementor/Theme anpassbar) */
.dsp-wrap { --dsp-blue:#1f4e79; --dsp-blue2:#2e5e8c; --dsp-line:#e2e8f0; font-size:15px; }
.dsp-notice { padding:12px 16px; border-radius:8px; margin:12px 0; border:1px solid var(--dsp-line); }
.dsp-notice--error { background:#fdecef; border-color:#f3b6c0; color:#8a1c2b; }
.dsp-notice--ok { background:#eafaf0; border-color:#a8e0bd; color:#1e7a34; }
.dsp-notice--info { background:#eef4fb; border-color:#bcd4ee; color:#1f4e79; }

.dsp-toolbar { display:flex; justify-content:space-between; align-items:center; gap:12px; margin:8px 0 16px; }
.dsp-btn { display:inline-block; background:var(--dsp-blue); color:#fff !important; border:0; border-radius:8px;
  padding:9px 16px; font-weight:600; text-decoration:none; cursor:pointer; }
.dsp-btn:hover { background:var(--dsp-blue2); }
.dsp-btn--ghost { background:#fff; color:var(--dsp-blue) !important; border:1px solid var(--dsp-blue); }

.dsp-table { width:100%; border-collapse:collapse; margin:4px 0; }
.dsp-table th, .dsp-table td { text-align:left; padding:10px 12px; border-bottom:1px solid var(--dsp-line); }
.dsp-table th { font-size:13px; text-transform:uppercase; letter-spacing:.03em; color:#64748b; }
.dsp-table tr:hover td { background:#f7fafc; }

.dsp-badge { display:inline-block; padding:3px 10px; border-radius:999px; font-size:12px; font-weight:600; }
.dsp-badge--green { background:#e5f6ec; color:#1e7a34; }
.dsp-badge--amber { background:#fdf2dc; color:#9a6a00; }
.dsp-badge--red { background:#fdecef; color:#8a1c2b; }
.dsp-badge--grey { background:#eef2f6; color:#475569; }

.dsp-cards { display:grid; grid-template-columns:repeat(auto-fit,minmax(180px,1fr)); gap:14px; margin:8px 0 20px; }
.dsp-card { border:1px solid var(--dsp-line); border-radius:12px; padding:16px; background:#fff; }
.dsp-card__num { font-size:30px; font-weight:700; color:var(--dsp-blue); line-height:1.1; }
.dsp-card__label { color:#64748b; font-size:14px; margin-top:4px; }

.dsp-form { max-width:820px; }
.dsp-join { max-width:420px; }
.dsp-join input[type=text] { width:100%; padding:10px 12px; border:1px solid var(--dsp-line); border-radius:8px; margin:6px 0 12px; }
