:root{
  --dp-bg:#f4f7fb;
  --dp-surface:#ffffff;
  --dp-surface-alt:#f8fbff;
  --dp-border:#e2e8f0;
  --dp-text:#0f172a;
  --dp-muted:#64748b;
  --dp-accent:#2563eb;
  --dp-accent-strong:#1d4ed8;
  --dp-accent-soft:#eff6ff;
  --dp-sidebar:#0f172a;
  --dp-sidebar-muted:rgba(255,255,255,.72);
  --dp-success-bg:#ecfdf5;
  --dp-success-text:#065f46;
  --dp-warn-bg:#fffbeb;
  --dp-warn-text:#92400e;
  --dp-error-bg:#fef2f2;
  --dp-error-text:#991b1b;
  --dp-radius:20px;
  --dp-radius-sm:14px;
  --dp-shadow:0 16px 40px rgba(15,23,42,.08);
  --dp-shadow-soft:0 10px 24px rgba(15,23,42,.05);
}
*{box-sizing:border-box}
[hidden] {display: none !important;}
.dp-shell{display:grid;grid-template-columns:280px 1fr;min-height:82vh;background:var(--dp-bg);border:1px solid var(--dp-border);border-radius:28px;overflow:hidden;box-shadow:var(--dp-shadow);  font-size: 110%;}
.dp-sidebar{background:linear-gradient(180deg,#0f172a 0%,#111827 100%);color:#fff;padding:28px 22px;display:flex;flex-direction:column;gap:18px}
.dp-brand{display:flex;gap:14px;align-items:center;padding:4px 2px 18px;border-bottom:1px solid rgba(255,255,255,.08)}
.dp-brand-mark{width:48px;height:48px;border-radius:16px;display:grid;place-items:center;background:rgba(255,255,255,.12);font-weight:800}
.dp-brand h2{margin:0;font-size:1.15rem}
.dp-brand p{margin:.2rem 0 0;color:var(--dp-sidebar-muted);font-size:.92rem}
.dp-nav{display:flex;flex-direction:column;gap:10px}
.dp-nav-btn{appearance:none;border:0;cursor:pointer;color:#fff;background:rgba(255,255,255,.07);padding:13px 14px;border-radius:14px;text-align:left;font:inherit;font-weight:600}
.dp-nav-btn:hover,.dp-nav-btn.is-active{background:var(--dp-accent)}
.dp-main{padding:28px;display:flex;flex-direction:column;gap:22px}
.dp-topbar{display:flex;justify-content:space-between;align-items:flex-start;gap:16px}
.dp-topbar h1{margin:0 0 6px;font-size:2rem;line-height:1.1;color:var(--dp-text)}
.dp-topbar p{margin:0;color:var(--dp-muted);max-width:800px;line-height:1.5}
.dp-topbar-actions{display:flex;gap:10px;align-items:center;flex-wrap:wrap}
.dp-stats{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px}
.dp-card{background:var(--dp-surface);border:1px solid var(--dp-border);border-radius:var(--dp-radius);box-shadow:var(--dp-shadow-soft);padding:22px}
.dp-card-subtle{background:var(--dp-surface-alt)}
.dp-grid{display:grid;grid-template-columns:1.35fr 1fr;gap:16px}
.dp-stat-label{display:block;font-size:.78rem;text-transform:uppercase;letter-spacing:.1em;color:var(--dp-muted);margin-bottom:8px;font-weight:700}
.dp-stat-number{display:block;font-size:1.4rem;margin-bottom:8px;color:var(--dp-text)}
.dp-card h2,.dp-card h3,.dp-card h4{margin:0 0 8px;color:var(--dp-text)}
.dp-card p{margin:0;color:var(--dp-muted);line-height:1.6}
.dp-list{margin:10px 0 0;padding-left:18px;color:var(--dp-text)}
.dp-list li{margin:.45rem 0;line-height:1.45}
.dp-button{appearance:none;border:0;cursor:pointer;display:inline-flex;align-items:center;justify-content:center;min-height:46px;padding:12px 18px;border-radius:14px;background:var(--dp-accent);color:#fff;text-decoration:none;font-weight:700}
.dp-button:disabled, .dp-field select:disabled{opacity:0.65;cursor:not-allowed;}
.dp-button:hover{background:var(--dp-accent-strong)}
.dp-button-secondary{background:#fff;color:var(--dp-text);border:1px solid var(--dp-border)}
.dp-button-small{min-height:38px;padding:8px 12px;font-size:.9rem}
.dp-chip{display:inline-flex;align-items:center;border-radius:999px;padding:8px 12px;font-size:.85rem;background:#eef2ff;color:#3730a3;white-space:nowrap}
.dp-chip-success{background:var(--dp-success-bg);color:var(--dp-success-text)}
.dp-chip-warn{background:var(--dp-warn-bg);color:var(--dp-warn-text)}
.dp-form{margin-top:10px}
.dp-form-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px}
.dp-field{display:flex;flex-direction:column;gap:8px}
.dp-field-full{grid-column:1 / -1}
.dp-field label{font-weight:700;color:var(--dp-text);font-size:.95rem}
.dp-field input,.dp-field select,.dp-field textarea{width:100%;padding:13px 14px;border-radius:14px;border:1px solid var(--dp-border);font:inherit;background:#fff;color:var(--dp-text)}
.dp-field input:focus,.dp-field select:focus,.dp-field textarea:focus{outline:none;border-color:var(--dp-accent);box-shadow:0 0 0 4px rgba(37,99,235,.12)}
.dp-actions{margin-top:18px;display:flex;gap:12px;flex-wrap:wrap}
.dp-inline-message{margin-top:14px;padding:12px 14px;border-radius:14px;font-size:.95rem;border:1px solid transparent}
.dp-inline-message.is-error{background:var(--dp-error-bg);color:var(--dp-error-text);border-color:#fecaca}
.dp-inline-message.is-success{background:var(--dp-accent-soft);color:var(--dp-accent-strong);border-color:#bfdbfe}
.dp-section-head{display:flex;justify-content:space-between;align-items:flex-start;gap:16px;margin-bottom:16px}
.dp-section-head h2,.dp-section-head h3{margin:0 0 6px}
.dp-section-head p{margin:0;color:var(--dp-muted);line-height:1.5}
.dp-step-badge{background:#ecfeff;color:#155e75;border-radius:999px;padding:8px 12px;font-size:.84rem;white-space:nowrap;font-weight:700}
.dp-registration-step-root{margin-top:18px}
.dp-summary-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;margin-bottom:16px;margin-top:16px;}
.dp-summary-grid>div{background:#fff;border:1px solid var(--dp-border);border-radius:14px;padding:12px 14px;color:var(--dp-text)}
.dp-notice{background:#fff;border:1px dashed #cbd5e1;padding:16px;border-radius:16px}
.dp-subsection{margin-top:20px;padding-top:20px;border-top:1px solid var(--dp-border)}
.dp-subsection:first-of-type{margin-top:0;padding-top:0;border-top:0}
.dp-card-list{display:grid;gap:12px;margin-top:16px}
.dp-selection-row{display:flex;justify-content:space-between;gap:16px;align-items:flex-start;border:1px solid var(--dp-border);border-radius:16px;padding:16px;background:#fff}
.dp-selection-sub{display:flex;gap:12px;flex-wrap:wrap;color:var(--dp-muted);margin-top:8px;font-size:.92rem}
.dp-price-row{display:flex;justify-content:space-between;gap:16px;align-items:flex-start;}
.dp-price-row > span:last-child{white-space:nowrap;font-weight:600;}
.dp-addon-line{margin-top:10px;font-size:13px;color:#555;}
.dp-radio-group{display:flex;flex-direction:column;gap:20px;}
.dp-radio-selection{display:flex;flex-wrap:wrap;gap:12px;}
.dp-radio-button{position:relative;cursor:pointer;}
.dp-radio-button input[type="radio"]{position: absolute;opacity:0;pointer-events:none;}
.dp-radio-button span {display:inline-block;padding:12px 20px;border:1px solid #d5d5d5;border-radius:10px;background:#fff;font-weight:600;transition: all 0.2s ease;min-width:160px;text-align:center;}
.dp-radio-button input[type="radio"]:checked + span {border-color:#2d6a4f;background:#f1faf4;box-shadow:0 0 0 2px rgba(45, 106, 79, 0.08);}
.dp-radio-button:hover span {border-color:#2d6a4f;}
.dp-pill-radio-group{display:flex;flex-wrap:wrap;gap:10px;}
.dp-pill-radio input[type="radio"]{position:absolute;opacity:0;pointer-events:none;}
.dp-pill-radio span{display:inline-flex;align-items: center;justify-content: center;min-height: 42px;padding: 0 18px;border: 1px solid #dfe6ef;border-radius: 999px;background: #fff;color: #0f172a;font-weight: 600;cursor: pointer;box-shadow: 0 1px 4px rgba(15, 23, 42, 0.06);}
.dp-pill-radio input[type="radio"]:checked+span{border-color:#2563eb;background:#eff6ff;color:#1d4ed8;box-shadow: 0 0 0 2px rgba(37,99,235,.12);}
.dp-remove-link {appearance: none;-webkit-appearance: none;background: transparent !important;border: none !important;box-shadow: none !important;border-radius: 0 !important;padding: 0 !important;margin-top: 8px;color: #dc2626;
    font: inherit;font-weight: 600;line-height: 1.2;cursor: pointer;text-decoration: underline;display: inline;min-width: auto;width: auto;}
.dp-remove-link:hover, .dp-remove-link:active, .dp-remove-link:focus {color: #991b1b !important;background: transparent !important;box-shadow: none !important;}
.dp-remove-link:focus {outline: none;text-decoration: underline;outline: none;box-shadow: none !important;}
.dp-signature-wrap{width:100%;border:2px dashed #94a3b8;border-radius:18px;background:#fff;overflow:hidden}
#dp_signature_canvas{display:block;width:100%;height:240px;background:#fff;touch-action:none}
.dp-camp-group{margin-top:22px}
.dp-camp-group h4{margin:0 0 12px}
.dp-camp-list{display:grid;gap:14px}
.dp-camp-card{border:1px solid var(--dp-border);background:#fff;border-radius:18px;padding:18px;box-shadow:var(--dp-shadow-soft)}
.dp-camp-card.is-selected {border-color:#2563eb;background:#f8fbff;box-shadow:0 0 0 2px rgba(37,99,235,.12);transition:all 0.2s ease;}
.dp-camp-card.is-selected .dp-camp-title{color:#1d4ed8}
.dp-camp-header{display:flex;align-items:center;justify-content:space-between;gap:12px;font-weight:700;color:var(--dp-text)}
.dp-camp-title-wrap{display:flex;align-items:center;gap:12px}
.dp-camp-slots{display:inline-flex;align-items:center;justify-content:center;background:#ecfeff;color:#155e75;border-radius:999px;padding:6px 10px;font-size:.85rem;white-space:nowrap}
.dp-camp-meta{margin-top:10px;color:var(--dp-muted);display:flex;gap:12px;flex-wrap:wrap}
.dp-addon-shell{margin-top:16px;padding-top:16px;border-top:1px solid var(--dp-border);display:grid;gap:14px}
.dp-addon-block{background:#f8fafc;border:1px solid var(--dp-border);border-radius:16px;padding:14px}
.dp-toggle-row{display:flex;align-items:center;gap:10px;font-weight:700;color:var(--dp-text)}
.dp-day-grid{display:flex;flex-wrap:wrap;gap:10px;margin-top:12px}
.dp-day-pill{position:relative;display:inline-flex}
.dp-day-pill input{position:absolute;opacity:0;pointer-events:none}
.dp-day-pill span{border:1px solid var(--dp-border);background:#fff;border-radius:999px;padding:8px 12px;cursor:pointer}
.dp-day-pill input:checked + span{background:#eff6ff;border-color:#bfdbfe;color:#1d4ed8;font-weight:700}
.dp-camper-actions{display:flex;flex-direction: column;align-items:flex-end;gap:8px;min-width: 150px;}
.dp-price-actions{display:flex; flex-direction: column;align-items:flex-end;gap: 6px;}
.dp-invoice-badge-wrap{display:flex;align-items:flex-start;justify-content:flex-end;min-width:120px;}
.dp-admin-nav-btn{appearance:none;border:0;cursor:pointer;color:#fff;background:rgba(255,255,255,.07);padding:13px 14px;border-radius:14px;text-align:left;font:inherit;font-weight:600;}
.dp-admin-nav-btn:hover,.dp-admin-nav-btn.is-active{background:var(--dp-accent)}
.dp-brand-logo{width:56px;height:56px;object-fit:contain;border-radius:14px;background:#ffffff;padding:4px;box-shadow:0 4px 10px rgba(15,23,42,.12);flex-shrink:0;}
.dp-form-actions {display: flex;gap: 10px;margin-top: 12px;}
.dp-addon-toggle-hidden{display:none;}
.dp-notice-soft {background: #f8fafc;border: 1px solid #e5e7eb;color: #374151;margin-bottom:6px;}
.dp-balance-details{margin-bottom:8px;}
.dp-cash-check-msg{margin-top:8px;margin-bottom:8px;padding: 16px 20px;}
.dp-invoice-actions {display: flex;flex-direction: column;align-items: flex-end;gap: 10px;min-width: 150px;}
.dp-status-pill {display: inline-flex;align-items: center;justify-content: center;padding: 7px 12px;border-radius: 999px;font-size: 12px;font-weight: 700;text-transform: capitalize;white-space: nowrap;}
.dp-status-success {background: #ecfdf5;color: #047857;border: 1px solid #a7f3d0;}
.dp-status-info {background: #eff6ff;color: #1d4ed8;border: 1px solid #bfdbfe;}
.dp-status-warn {background: #fffbeb;color: #92400e;border: 1px solid #fde68a;}
.dp-invoice-action-buttons {display: flex;flex-direction: column;align-items: flex-end;gap: 8px;}
.dp-link-button {appearance: none;-webkit-appearance: none; border: none !important; background: transparent !important;box-shadow: none !important; color: #1d4ed8;font-weight: 700;font-size: 13px;
  text-decoration: underline;cursor: pointer;padding: 0 !important; min-height: auto !important;}
.dp-link-button:hover, 
.dp-link-button:focus,
.dp-link-button:active{color: #1e40af !important;background: transparent !important;box-shadow: none !important;}
.dp-link-button-primary {color: #111827;}
.dp-link-button-primary:hover {color: #374151;}
.dp-rider-card-header {all: unset;display: flex;justify-content: space-between;align-items: flex-start;width: 100%;padding: 18px 20px;cursor: pointer;box-sizing: border-box;}
.dp-rider-card-header:hover {background: #fafafa;}
.dp-rider-card {all:unset !important;background: #ffffff;border: 1px solid #d9d9d9;border-radius: 5px;margin-bottom: 16px;overflow: hidden;transition: box-shadow 0.2s ease;}
.dp-rider-card:hover {box-shadow: 0 6px 18px rgba(0, 0, 0, 0.06);}
.dp-rider-details {background: #faf8f5;border-top: 1px solid #e5ddd2;padding: 18px 20px;}
.dp-rider-details h4 {margin-top: 16px;margin-bottom: 10px;}
.dp-rider-details .dp-selection-row {background: #ffffff;border: 1px solid #e7dfd4;border-radius: 5px;margin-bottom: 10px;padding: 14px 16px;}
.dp-registration-tree {display: grid;gap: 14px;}
.dp-tree-year,
.dp-tree-month {background: #fff;border: 1px solid var(--dp-border);border-radius: 16px;padding: 14px;}
.dp-tree-year > summary,
.dp-tree-month > summary {list-style: none;cursor: pointer;font-weight: 800;color: var(--dp-text); display: flex;align-items: center;gap: 10px;}
.dp-tree-year > summary::-webkit-details-marker,
.dp-tree-month > summary::-webkit-details-marker {display: none;}
.dp-tree-year > summary::before,
.dp-tree-month > summary::before {content: "▶";font-size: 12px;transition: transform 0.2s ease;display: inline-block;}
.dp-tree-year[open] > summary::before,
.dp-tree-month[open] > summary::before {content: "▼";}
.dp-tree-month {margin-top: 12px;}
.dp-tree-month > summary {display: flex;justify-content: space-between;gap: 12px;}
.dp-tree-month > summary span {color: var(--dp-muted);font-size: 0.9rem;font-weight: 600;}
.dp-filter-bar {display: flex;gap: 12px;margin-bottom: 16px;flex-wrap: wrap;}
.dp-filter-bar input,
.dp-filter-bar select {border: 1px solid var(--dp-border);border-radius: 14px;padding: 12px 14px;font: inherit;}

.waitlist-notice {background: #fffbeb;color: #92400e;border: 1px solid #fcd34d;border-radius: 10px;padding: 12px;}

.lrs-camp-view {margin-top: 32px;}
.lrs-camp-view h2 {margin: 32px 0 18px; text-align: center; font-weight: 700; letter-spacing: 0.02em;}
.lrs-camp-availability-list {border: 1px solid #e5e1dc;border-radius: 14px;overflow: hidden;background: #fff;}
.lrs-camp-availability-row {display: grid;grid-template-columns: 1fr 90px 150px;gap: 16px;align-items: center;padding: 16px 20px;border-bottom: 1px solid #eee8e1;}
.lrs-camp-availability-row:last-child {border-bottom: 0;}
.lrs-camp-date {font-weight: 700;}
.lrs-camp-capacity {color: #4b5563;font-weight: 700;text-align: center;}
.lrs-camp-status {border-radius: 999px;font-weight: 700;padding: 7px 12px;text-align: center;}
.lrs-camp-status.is-open {background: #ecfdf5;color: #047857;}
.lrs-camp-status.is-waitlist {background: #fff7ed;color: #9a3412;}

@media (max-width:1100px){
  .dp-stats,.dp-grid{grid-template-columns:1fr}
}

@media (max-width:960px){
  .dp-shell{grid-template-columns:1fr}
  .dp-topbar{flex-direction:column}
  .dp-form-grid,.dp-summary-grid{grid-template-columns:1fr}
}

@media (max-width:640px){
  .dp-main,
  .dp-sidebar{padding:18px}
  .dp-card{padding:16px}
  .dp-selection-row,.dp-camp-header{flex-direction:column;align-items:flex-start}

  .lrs-camp-availability-row {grid-template-columns: 1fr;gap: 8px;}
  .lrs-camp-capacity,
  .lrs-camp-status {text-align: left;}
  .lrs-camp-status {display: inline-block;width: fit-content;}
}

