.us-login-form label { display: block; margin-bottom: 4px; font-weight: 600; } .us-login-form input[type="text"], .us-login-form input[type="password"] { width: 100%; max-width: 340px; padding: 8px; border: 1px solid #ccc; border-radius: 4px; } .us-error { color: #c00; border-left: 4px solid #c00; padding-left: 8px; } #us-booking-app .us-slot { border: 1px solid #ddd; border-radius: 4px; padding: 12px 16px; margin-bottom: 8px; display: flex; justify-content: space-between; align-items: center; } #us-booking-error { color: #c00; margin-top: 8px; } .us-my-lessons { margin-bottom: 24px; } .us-my-lesson { border: 1px solid #ddd; border-radius: 4px; padding: 12px 16px; margin-bottom: 8px; display: flex; justify-content: space-between; align-items: center; gap: 12px; } .us-my-lesson-info { display: flex; flex-direction: column; gap: 2px; } .us-my-lesson-title { font-size: 1.05em; } .us-my-lesson-duration { font-weight: normal; color: #666; } .us-my-lesson-when { color: #555; } .us-my-lesson-actions { display: flex; gap: 12px; align-items: center; } .us-show-all-lessons { background: transparent; border: 1px solid #ccc; border-radius: 4px; padding: 6px 14px; cursor: pointer; } .us-show-all-lessons:hover { border-color: #888; } .us-cancel-lesson { background: transparent; border: 1px solid #ccc; border-radius: 4px; padding: 4px 12px; cursor: pointer; color: #c00; } .us-cancel-lesson:hover { border-color: #c00; } .us-lesson-status { font-size: 0.85em; font-weight: 600; padding: 2px 10px; border-radius: 10px; background: #eee; } .us-lesson-status-confirmed { background: #e2f5e5; color: #1a7d2e; } .us-lesson-status-pending { background: #fdf3d7; color: #8a6d1a; } .us-calendar-controls { display: flex; flex-wrap: wrap; justify-content: space-between; align-items: center; gap: 8px; margin-bottom: 12px; } .us-filter-toggle { padding: 6px 16px; border: 1px solid #ccc; border-radius: 4px; background: transparent; cursor: pointer; } .us-filter-toggle.us-active { background: #333; border-color: #333; color: #fff; } .us-type-filter { margin-bottom: 12px; padding: 8px 12px; border: 1px solid #eee; border-radius: 4px; } .us-type-filter-heading { display: block; margin-bottom: 6px; font-weight: 600; } .us-type-filter-choices { display: flex; flex-wrap: wrap; align-items: center; gap: 8px 16px; } .us-type-filter-choice { display: inline-flex; align-items: center; gap: 6px; } .us-type-filter-clear { margin-left: auto; padding: 4px 12px; border: 1px solid #ccc; border-radius: 4px; background: transparent; cursor: pointer; } .us-view-toggle { display: flex; gap: 8px; } .us-view-toggle button { padding: 6px 16px; border: 1px solid #ccc; border-radius: 4px; background: transparent; cursor: pointer; } .us-view-toggle button.us-active { background: #333; border-color: #333; color: #fff; } .us-week-nav { display: flex; justify-content: space-between; align-items: center; gap: 8px; margin-bottom: 12px; } .us-week-nav button { padding: 6px 12px; border: 1px solid #ccc; border-radius: 4px; background: transparent; cursor: pointer; } .us-week-grid { display: grid; grid-template-columns: repeat(7, 1fr); gap: 8px; } .us-week-day { border: 1px solid #ddd; border-radius: 4px; padding: 8px; min-height: 90px; } .us-week-day-heading { margin: 0 0 8px; font-size: 0.85em; text-align: center; } .us-week-slot { display: block; width: 100%; margin-bottom: 6px; } .us-week-empty { display: block; text-align: center; opacity: 0.4; } /* The price and pay agreement on a booking / enrolment form. */ .us-price { border: 1px solid #ddd; border-radius: 4px; padding: 12px 16px; margin: 16px 0; } .us-price h4 { margin: 0 0 8px; } .us-price p { margin: 0 0 4px; } .us-price-amount strong { font-size: 1.15em; } .us-price-cadence { margin-left: 4px; } .us-price-tax, .us-price-note { font-size: 0.9em; opacity: 0.8; } .us-price-agree { display: block; margin-top: 12px; font-weight: 600; } /* The cadence-carrying price on a group-class card. */ .us-class-price { font-weight: 600; } /* Policy acceptance — booking, enrolment, and signup all render this markup. */ .us-policy { margin: 16px 0; } .us-policy h4 { margin: 0 0 6px; } /* * The body is admin-authored HTML sitting inside whatever layout the theme * provides, so it gets an explicit reading box rather than inheriting one. * `overflow-wrap` breaks pasted URLs instead of letting one long token force * the horizontal scrollbar, and the bounded height keeps a long policy from * pushing the accept checkbox off the screen. */ .us-policy-body { box-sizing: border-box; max-width: 100%; max-height: 260px; overflow-y: auto; overflow-x: hidden; padding: 12px 14px; margin-bottom: 8px; border: 1px solid #ddd; border-radius: 4px; background: #fafafa; white-space: normal; overflow-wrap: break-word; word-break: break-word; line-height: 1.5; text-align: left; } .us-policy-body p, .us-policy-body ul, .us-policy-body ol { margin: 0 0 0.75em; max-width: 100%; } .us-policy-body ul, .us-policy-body ol { padding-left: 1.5em; } .us-policy-body > :last-child { margin-bottom: 0; } .us-policy-accept, .us-policies input[type="checkbox"] { margin-right: 6px; } @media (max-width: 640px) { .us-week-grid { grid-template-columns: 1fr; } .us-week-day { min-height: 0; } } /* Shown only in block-editor previews (see BlockPreview). */ .us-editor-note { font-size: 0.85em; font-style: italic; opacity: 0.7; }