.camp-billing-box{background:#fff;border:1px solid #e5e5e5;border-radius:10px;padding:14px}
.camp-billing-portal,.camp-billing-agency{max-width:1100px;margin:20px auto;padding:0 12px}
.camp-billing-portal h3,.camp-billing-agency h3{margin:0 0 12px 0}
.camp-billing-section{background:#fff;border:1px solid #e5e5e5;border-radius:10px;padding:14px;margin:14px 0}
.camp-billing-section h4{margin:0 0 10px 0}
.camp-billing-section table{width:100%}
.camp-billing-section .description{color:#555;margin-top:6px}
.camp-billing-actions{display:flex;gap:10px;flex-wrap:wrap}

/* Agency portal layout */
.camp-billing-layout{display:grid;grid-template-columns:220px 1fr;gap:16px}
.camp-billing-sidebar{position:sticky;top:16px;align-self:start;background:#fff;border:1px solid #e5e5e5;border-radius:10px;padding:14px;height:max-content}
.camp-billing-sidebar h3{margin:0 0 10px 0;font-size:18px}
.camp-billing-sidebar nav{display:flex;flex-direction:column;gap:6px}
.camp-billing-sidebar .cb-nav{display:block;padding:10px 10px;border-radius:8px;text-decoration:none;border:1px solid transparent}
.camp-billing-sidebar .cb-nav.active{border-color:#ddd;font-weight:600}
.camp-billing-main h3{margin-top:0}

/* Scrollable table wrapper (prevents main container from stretching on wide tables) */
.camp-billing-main{min-width:0}
.cb-table-scroll{overflow:auto;max-width:100%;border:1px solid #eee;border-radius:10px}
.cb-table-scroll .camp-billing-table{min-width:720px}
/* comfortable default height for long lists (unassigned/assigned) */
.camp-billing-section .cb-table-scroll{max-height:420px}

/* Form grids */
.cb-form-grid{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:10px;align-items:end}
.cb-form-grid .cb-field{display:flex;flex-direction:column;gap:4px}
.cb-form-grid .cb-field label{font-size:12px;color:#444}
.cb-form-grid input[type="text"],
.cb-form-grid input[type="email"],
.cb-form-grid select,
.cb-form-grid textarea{width:100%;max-width:100%}
.cb-form-grid .cb-actions{align-items:flex-start}
.cb-form-grid .cb-actions button,
.cb-form-grid .cb-actions a{width:100%}

/* Prevent long labels like "Ausgewählte zuweisen" from overflowing without making the button huge */
#cb-assign-form .cb-actions .button{
  width:auto;
  max-width:100%;
  white-space:normal;
  line-height:1.2;
  padding:10px 14px;
  height:auto;
}

.cb-price-grid{grid-template-columns:repeat(3,minmax(0,1fr))}
.cb-customer-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
.cb-customer-grid .cb-span-2{grid-column:1 / -1}

.cb-subtotal td{font-weight:600;background:#fafafa}

@media (max-width: 980px){
  .camp-billing-layout{grid-template-columns:1fr}
  .camp-billing-sidebar{position:relative;top:auto}
  .cb-form-grid{grid-template-columns:1fr}
}
