body { background: #ffffff; font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Helvetica, Arial, sans-serif; }

.lg-page { min-height: 100vh; display: flex; flex-direction: column; background: #ffffff; }
.lg-topbar { height: 88px; background: oklch(0.96 0.002 90); flex-shrink: 0; }
.lg-content { flex: 1; }
.lg-content-fixed-footer .container-fluid { padding-bottom: 110px; }

.lg-title { font-family: "Playfair Display", Georgia, serif; font-weight: 900; font-size: 30px; letter-spacing: 0.5px; color: oklch(0.22 0.01 260); text-transform: uppercase; }

.lg-filters { display: flex; flex-wrap: wrap; gap: 40px; margin-bottom: 32px; }
.lg-field { display: flex; flex-direction: column; gap: 8px; flex: 0 1 260px; max-width: 320px; }
.lg-field label { font-size: 15px; font-weight: 600; color: oklch(0.15 0.01 260); }
.lg-select, .lg-number {
    border: 1px solid oklch(0.75 0.005 90); border-radius: 4px;
    font-size: 14px; color: oklch(0.35 0.01 260); background-color: #ffffff;
}
.lg-select:focus, .lg-number:focus {
    border-color: oklch(0.6 0.03 175); box-shadow: 0 0 0 0.2rem oklch(0.93 0.03 175 / 0.5);
}

.lg-participant-card {
    border: 1.5px solid oklch(0.72 0.09 175);
    border-radius: 16px;
    overflow: hidden;
    background: #ffffff;
}

.lg-row-header {
    display: flex; flex-wrap: wrap; align-items: center; row-gap: 10px; column-gap: 16px;
    background: oklch(0.95 0.015 175); padding: 16px 24px; cursor: pointer;
}
.lg-row-id { display: flex; flex-direction: column; gap: 2px; min-width: 150px; }
.lg-row-id span:first-child { font-size: 11px; color: oklch(0.4 0.02 260); }
.lg-row-id span:last-child { font-size: 15px; font-weight: 700; color: oklch(0.2 0.01 260); }
.lg-divider { width: 1px; align-self: stretch; background: oklch(0.55 0.02 260 / 0.35); }
.lg-badges { display: flex; flex-wrap: wrap; align-items: center; gap: 10px; }
.lg-badge-level { font-size: 13px; font-weight: 700; color: #ffffff; background: oklch(0.55 0.08 175); padding: 6px 12px; border-radius: 4px; }
.lg-badge-hours { font-size: 13px; font-weight: 600; color: #ffffff; background: oklch(0.55 0.08 175); padding: 6px 14px; border-radius: 4px; }
.lg-row-spacer { flex: 1 1 auto; }
.lg-row-price { font-size: 16px; font-weight: 700; color: oklch(0.2 0.01 260); white-space: nowrap; }
.lg-row-chevron { font-size: 18px; color: oklch(0.2 0.01 260); transition: transform 0.2s ease; display: inline-block; }
.lg-row-chevron.expanded { transform: rotate(180deg); }

.lg-row-panel {
    background: oklch(0.94 0.008 175);
    padding: 20px; display: flex; flex-direction: column; gap: 16px;
}
.lg-panel-box { background: #ffffff; border-radius: 12px; padding: 20px; }
.lg-panel-box label.form-label { font-size: 13px; font-weight: 600; color: oklch(0.2 0.01 260); }

.lg-note-field { border-top: 1px solid oklch(0.88 0.005 90); padding-top: 14px; margin-top: 6px; }
.lg-note-input {
    border: none; border-bottom: 1px solid oklch(0.6 0.01 90); border-radius: 0;
    background: transparent; padding: 4px 2px; resize: vertical;
}
.lg-note-input:focus { box-shadow: none; border-color: oklch(0.55 0.08 175); }

.lg-combo-title { text-align: center; font-weight: 700; margin-bottom: 16px; color: oklch(0.2 0.01 260); }
.lg-combo-table { border-collapse: collapse; width: 100%; }
.lg-combo-table th, .lg-combo-table td { border: 1px solid oklch(0.85 0.005 90); }
.lg-combo-table thead th { background: #ffffff; font-weight: 600; padding: 10px; }
.lg-combo-level-cell { background: #ffffff; font-weight: 700; text-align: left; padding: 10px 14px; white-space: nowrap; }
.lg-combo-cell { height: 44px; cursor: pointer; background: oklch(0.9 0.03 175); }
.lg-combo-cell:hover:not(.unavailable) { background: oklch(0.85 0.05 175); }
.lg-combo-cell.unavailable { background: oklch(0.87 0.005 90); cursor: not-allowed; }
.lg-combo-cell.selected { background: oklch(0.55 0.1 175); }

.lg-combo-explain { color: oklch(0.5 0.09 175); font-weight: 600; text-decoration: none; display: inline-block; margin-top: 16px; }
.lg-combo-note { color: oklch(0.4 0.01 260); font-size: 13px; line-height: 1.5; margin-top: 12px; margin-bottom: 0; }

.lg-footer {
    background: oklch(0.94 0.003 90);
    flex-shrink: 0;
    position: fixed; bottom: 0; left: 0; right: 0; z-index: 1030;
    box-shadow: 0 -2px 10px rgba(0, 0, 0, 0.08);
}
.lg-footer-label { font-size: 14px; font-weight: 600; color: oklch(0.35 0.01 260); }
.lg-footer-total { font-size: 17px; font-weight: 700; color: oklch(0.2 0.01 260); }
.lg-footer-btn {
    background: oklch(0.5 0.08 175);
    color: #ffffff;
    font-weight: 700;
    font-size: 15px;
    border: none;
    padding: 18px 40px;
    white-space: nowrap;
}
.lg-footer-btn:hover:not(:disabled) { background: oklch(0.45 0.08 175); color: #ffffff; }
.lg-footer-btn:disabled { background: oklch(0.8 0.015 175); color: oklch(0.98 0 0); cursor: not-allowed; }

@media (max-width: 575.98px) {
    .lg-title { font-size: 24px; }
    .lg-divider { display: none; }
    .lg-field { flex-basis: 100%; max-width: 100%; }
    .lg-content-fixed-footer .container-fluid { padding-bottom: 170px; }
}