/* ===== Design tokens ===== */
:root {
	--so-black: #17130f;
	--so-black-soft: #201a14;
	--so-gold: #d4a017;
	--so-amber: #f2a900;
	--so-cream: #f5ead0;
	--so-maroon: #3b1220;
}

.so-shootouts-page,
.single-so_event .so-event-description,
.single-so_event .so-admin-edit-link,
.single-so_event .so-event-meta-block,
.single-so_event .so-rsvp-block,
.single-so_event .so-gallery-section {
	font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Helvetica, Arial, sans-serif;
}

.so-eyebrow {
	font-family: 'Bebas Neue', -apple-system, sans-serif;
	font-size: 1.15em;
	letter-spacing: 0.14em;
	color: var(--so-gold);
	margin: 0 0 4px 0;
	text-transform: uppercase;
}

/* ===== Event List — ticket-stub card style ===== */
.so-event-list {
	display: flex;
	flex-direction: column;
	gap: 0;
}

.so-event-row {
	display: flex;
	align-items: center;
	gap: 20px;
	background: transparent;
	border: none;
	border-radius: 0;
	box-shadow: none;
	padding-bottom: 18px;
	border-bottom: 1px solid #eee;
}

.so-event-row:last-child {
	border-bottom: none;
}

.so-event-row-photo {
	flex: 0 0 220px;
}

.so-event-row-photo img {
	width: 220px !important;
	height: 150px !important;
	max-width: none !important;
	border-radius: 8px;
	object-fit: cover !important;
	display: block;
}

.so-event-row-details {
	display: flex;
	flex-direction: column;
	justify-content: center;
	gap: 4px;
	flex: 1;
}

.so-event-row-details h3 {
	margin: 0;
	font-family: 'Bebas Neue', -apple-system, sans-serif;
	font-size: 2em;
	line-height: 1.05;
	letter-spacing: 0.02em;
	text-transform: uppercase;
}

.so-event-row-details h3 a {
	text-decoration: none;
	color: #1c1712;
}

.so-event-row-details h3 a:hover {
	color: var(--so-amber);
}

.so-event-date {
	display: inline-block;
	font-weight: 700;
	margin: 4px 0 8px 0;
	color: var(--so-black);
	background: var(--so-gold);
	padding: 3px 10px;
	border-radius: 3px;
	font-size: 0.85em;
	letter-spacing: 0.03em;
	width: fit-content;
}

.so-event-teaser {
	margin: 0 0 10px 0;
	color: #444;
	font-size: 1em;
	line-height: 1.55;
}

.so-locked {
	color: #888;
	font-style: italic;
	margin: 0 0 8px 0;
}

.so-locked-page {
	color: #666;
	font-style: italic;
	font-size: 1.05em;
}

.so-locked-page a {
	color: var(--so-gold);
	font-weight: 600;
}

.so-view-details {
	display: inline-block;
	font-family: 'Bebas Neue', -apple-system, sans-serif;
	font-size: 1.05em;
	letter-spacing: 0.05em;
	text-decoration: none;
	color: #b3760a;
	border-bottom: 1px dashed #b3760a;
	margin-top: 4px;
	width: fit-content;
}

.so-view-details:hover {
	color: var(--so-amber);
	border-color: var(--so-amber);
}

/* ===== Buttons ===== */
a.so-btn,
a.so-btn:link,
a.so-btn:visited,
button.so-btn {
	display: inline-block;
	font-family: 'Bebas Neue', -apple-system, sans-serif;
	font-size: 1.1em;
	letter-spacing: 0.05em;
	padding: 11px 22px;
	background: var(--so-gold) !important;
	color: var(--so-black) !important;
	border-radius: 4px;
	text-decoration: none !important;
	text-transform: uppercase;
	border: 2px solid var(--so-black);
	cursor: pointer;
}

a.so-btn:hover,
a.so-btn:focus,
button.so-btn:hover,
button.so-btn:focus {
	background: var(--so-amber) !important;
	color: var(--so-black) !important;
}

/* ===== Register / general Shootouts forms ===== */
.so-register-form p,
.so-event-form p {
	margin: 0 0 14px 0 !important;
}

.so-register-form label,
.so-event-form label {
	font-weight: 600;
	display: block;
	margin: 0 0 4px 0 !important;
	line-height: 1.3;
}

.so-register-form input[type="text"],
.so-register-form input[type="email"],
.so-register-form input[type="password"],
.so-register-form input[type="url"],
.so-register-form input[type="number"],
.so-event-form input[type="text"],
.so-event-form input[type="email"],
.so-event-form input[type="url"],
.so-event-form input[type="number"],
.so-event-form input[type="datetime-local"],
.so-event-form textarea {
	width: 100%;
	max-width: 420px;
	padding: 8px;
	margin: 0 !important;
	box-sizing: border-box;
	display: block;
}

.so-register-form .description,
.so-event-form .description {
	display: block;
	font-size: 0.85em;
	color: #777;
	margin-top: 4px;
}

/* ===== Admin front-end event manager ===== */
.so-admin-panel {
	background: #fafafa;
	border: 1px solid #e5e5e5;
	border-radius: 8px;
	padding: 16px 20px;
	margin-bottom: 24px;
}

.so-admin-panel-toggle {
	cursor: pointer;
	font-weight: 700;
	font-size: 1.1em;
	padding: 4px 0;
}

.so-event-form {
	margin-top: 16px;
}

.so-current-cover img {
	max-width: 120px;
	border-radius: 6px;
	display: block;
	margin-bottom: 8px;
}

.so-manage-table {
	width: 100%;
	border-collapse: collapse;
	margin-top: 20px;
}

.so-manage-table th,
.so-manage-table td {
	text-align: left;
	padding: 8px 10px;
	border-bottom: 1px solid #eee;
}

.so-saved-msg {
	background: #eaf7ea;
	border: 1px solid #b7e0b7;
	color: #256d25;
	padding: 8px 14px;
	border-radius: 6px;
	display: inline-block;
	margin-bottom: 16px;
}

@media (max-width: 600px) {
	.so-event-row {
		flex-direction: column;
		align-items: flex-start;
	}
	.so-event-row-photo {
		width: 100% !important;
		flex-basis: auto;
	}
	.so-event-row-photo img {
		width: 100% !important;
		height: 220px !important;
		max-width: none !important;
		object-fit: cover !important;
	}
}

/* ===== v0.3.0 additions ===== */

/* Structured event meta block (date, location, cost, cap) */
.so-event-meta-block {
	background: #fff;
	border: 2px solid var(--so-gold);
	border-radius: 6px;
	padding: 16px 20px;
	margin-bottom: 20px;
}

.so-meta-row {
	margin: 6px 0;
	color: #2b2b2b;
}

.so-meta-label {
	font-family: 'Bebas Neue', -apple-system, sans-serif;
	letter-spacing: 0.04em;
	font-weight: 400;
	font-size: 1.05em;
	color: #a67c0a;
	margin-right: 6px;
}

.so-meta-value {
	color: #2b2b2b;
}

/* Compact field layout used by both the register form and the front-end event form */
.so-field {
	margin-bottom: 14px;
}

.so-field label {
	font-weight: 600;
	display: block;
	margin-bottom: 3px;
	line-height: 1.3;
}

.so-field-note {
	font-weight: 400;
	font-size: 0.82em;
	color: #777;
}

.so-field input[type="text"],
.so-field input[type="email"],
.so-field input[type="password"],
.so-field input[type="url"],
.so-field input[type="tel"],
.so-field input[type="number"],
.so-field input[type="datetime-local"],
.so-field select,
.so-field textarea {
	width: 100%;
	max-width: 420px;
	padding: 8px;
	box-sizing: border-box;
	display: block;
	margin: 0;
}

.so-field-checkbox label {
	font-weight: 400;
	display: flex;
	align-items: center;
	gap: 6px;
}

.so-field-inline {
	display: flex;
	gap: 16px;
}

.so-field-inline > div {
	flex: 1;
	max-width: 200px;
}

.so-cover-picker .so-cover-preview img {
	max-width: 120px;
	border-radius: 6px;
	display: block;
	margin-bottom: 8px;
}

.so-cover-picker input[type="file"] {
	margin-top: 8px;
}

@media (max-width: 600px) {
	.so-field-inline {
		flex-direction: column;
	}
	.so-field-inline > div {
		max-width: 100%;
	}
}

/* ===== v0.4.0 additions ===== */

/* Keep the single event page's cover photo the same aspect ratio as
   the list view, regardless of what size the theme tries to render it
   at or how the theme's own template wraps/classes the image. Several
   selector patterns covered since we can't be sure which one the
   active theme actually uses, and !important on every property since
   a plain rule wasn't enough to override the theme's own styling. */
.single-so_event img.wp-post-image,
.single-so_event .entry-header img,
.single-so_event .post-thumbnail img,
.single-so_event .entry-content > img:first-child {
	width: 100% !important;
	max-width: 900px !important;
	height: auto !important;
	aspect-ratio: 3 / 2 !important;
	object-fit: cover !important;
	object-position: center top !important;
	border-radius: 8px !important;
	display: block !important;
}

.so-admin-edit-link {
	margin-bottom: 16px;
}

/* ===== v0.5.0 additions — Photo Gallery ===== */

/* Admin-side gallery picker (front-end event form) */
.so-gallery-grid {
	display: flex;
	flex-wrap: wrap;
	gap: 10px;
	margin-bottom: 10px;
}

.so-gallery-thumb {
	position: relative;
	width: 90px;
	height: 90px;
}

.so-gallery-thumb img {
	width: 90px;
	height: 90px;
	object-fit: cover;
	border-radius: 6px;
	display: block;
}

.so-gallery-remove {
	position: absolute;
	top: -6px;
	right: -6px;
	width: 20px;
	height: 20px;
	border-radius: 50%;
	background: #b30000;
	color: #fff;
	border: none;
	cursor: pointer;
	line-height: 1;
	font-size: 14px;
}

/* Public-facing gallery on the single event page */
.so-gallery-section {
	margin-top: 24px;
}

.so-gallery-section h3 {
	margin-bottom: 10px;
	font-family: 'Bebas Neue', -apple-system, sans-serif;
	color: var(--so-gold);
	letter-spacing: 0.04em;
	text-transform: uppercase;
	font-size: 1.5em;
}

.so-gallery-display {
	display: flex;
	gap: 10px;
	overflow-x: auto;
	padding-bottom: 8px;
	scroll-snap-type: x proximity;
	-webkit-overflow-scrolling: touch;
	scrollbar-width: auto;
}

.so-gallery-display::-webkit-scrollbar {
	height: 12px;
}

.so-gallery-display::-webkit-scrollbar-track {
	background: #f0f0f0;
	border-radius: 6px;
}

.so-gallery-display::-webkit-scrollbar-thumb {
	background: #f2a900;
	border-radius: 6px;
}

.so-gallery-display::-webkit-scrollbar-thumb:hover {
	background: #d99700;
}

.so-gallery-item {
	flex: 0 0 auto;
	scroll-snap-align: start;
}

.so-gallery-item img {
	width: 220px;
	height: 150px;
	object-fit: cover;
	border-radius: 8px;
	display: block;
	transition: transform 0.15s ease;
}

.so-gallery-item:hover img {
	transform: scale(1.03);
}

/* ===== v0.6.0 additions — RSVP + Attendee List ===== */

.so-rsvp-block {
	background: #fff;
	border: 2px solid var(--so-gold);
	border-radius: 6px;
	padding: 18px 20px;
	margin-bottom: 20px;
	color: #2b2b2b;
}

.so-rsvp-count {
	font-weight: 600;
	margin: 0 0 10px 0;
	color: #444;
}

.so-rsvp-count-urgent {
	font-weight: 800;
	color: #c0392b;
	font-size: 1.15em;
}

.so-rsvp-status {
	font-family: 'Bebas Neue', -apple-system, sans-serif;
	font-size: 1.3em;
	letter-spacing: 0.03em;
	margin: 0 0 10px 0;
}

.so-status-attending {
	color: #2e8b2e;
}

.so-status-waitlisted {
	color: #a67c0a;
}

a.so-btn-cancel,
button.so-btn-cancel {
	background: #fff !important;
	color: #c0392b !important;
	border: 2px solid #c0392b;
}

a.so-btn-cancel:hover,
button.so-btn-cancel:hover {
	background: #c0392b !important;
	color: #fff !important;
}

.so-rsvp-block form {
	display: inline-block;
	margin: 0;
}

.so-rsvp-block .so-field-note {
	color: #777;
}

.so-attendee-section {
	margin-top: 18px;
	padding-top: 14px;
	border-top: 1px dashed var(--so-gold);
}

.so-attendee-section h3 {
	font-family: 'Bebas Neue', -apple-system, sans-serif;
	color: #a67c0a;
	letter-spacing: 0.03em;
	text-transform: uppercase;
	font-size: 1.4em;
	margin: 0 0 10px 0;
}

.so-attendee-section p {
	color: #444;
}

.so-attendee-grid {
	display: flex;
	flex-wrap: wrap;
	gap: 18px;
}

.so-attendee {
	display: flex;
	flex-direction: column;
	align-items: center;
	width: 80px;
	text-align: center;
	position: relative;
}

.so-attendee-avatar-wrap img {
	border-radius: 50%;
	display: block;
}

.so-attendee-avatar-wrap {
	cursor: pointer;
}

.so-attendee-name {
	font-size: 0.85em;
	margin-top: 6px;
	color: #333;
	word-break: break-word;
}

.so-admin-avatar-menu {
	position: absolute;
	top: 68px;
	left: 50%;
	transform: translateX(-50%);
	background: #fff;
	border: 1px solid #ddd;
	border-radius: 6px;
	box-shadow: 0 4px 12px rgba(0,0,0,0.15);
	padding: 8px 0;
	z-index: 10;
	min-width: 140px;
}

.so-admin-avatar-menu a,
.so-admin-avatar-menu .so-menu-disabled {
	display: block;
	padding: 6px 14px;
	font-size: 0.85em;
	text-decoration: none;
	color: #333;
	white-space: nowrap;
}

.so-admin-avatar-menu .so-menu-disabled {
	color: #aaa;
	cursor: default;
}

.so-waitlist-note {
	margin-top: 12px;
	color: #777;
	font-style: italic;
}

/* ===== v0.7.0 additions — Admin RSVP management, contacts, notifications ===== */

.so-inline-form {
	display: inline-block !important;
	margin: 0 !important;
}

.so-menu-remove {
	background: none;
	border: none;
	color: #b30000;
	cursor: pointer;
	padding: 6px 14px;
	font-size: 0.85em;
	text-align: left;
	width: 100%;
}

.so-menu-remove:hover {
	background: #fbeaea;
}

.so-waitlist-heading {
	margin-top: 16px;
	margin-bottom: 6px;
	color: #333;
}

.so-waitlist-table {
	width: 100%;
	border-collapse: collapse;
}

.so-waitlist-table td {
	padding: 6px 4px;
	border-bottom: 1px solid #eee;
	color: #333;
}

.so-link-btn {
	background: none;
	border: none;
	color: #a67c0a;
	cursor: pointer;
	text-decoration: underline;
	font-size: 0.85em;
	padding: 0;
	margin-right: 10px;
}

.so-link-remove {
	color: #c0392b;
}

.so-admin-add-form {
	margin-top: 20px;
	padding-top: 16px;
	border-top: 1px dashed var(--so-gold);
}

.so-admin-add-form h4 {
	margin-bottom: 8px;
	color: #333;
}

.so-admin-add-form select {
	margin-right: 8px;
	padding: 6px;
}

/* ===== v0.9.0 additions — Page Cover Banner ===== */

.so-page-cover {
	margin-bottom: 20px;
}

.so-page-cover img {
	width: 100%;
	max-height: 340px;
	object-fit: cover;
	border-radius: 10px;
	display: block;
}

.so-cover-panel {
	margin-bottom: 16px;
}

/* ===== v0.9.1 additions — Typography overhaul ===== */

.so-blurb {
	font-size: 1.2em;
	line-height: 1.65;
	color: #333;
	max-width: 750px;
	margin-bottom: 20px;
}

.so-blurb p {
	margin-bottom: 1em;
}

.so-blurb ul,
.so-blurb ol {
	margin: 0.5em 0 1.2em 1.4em;
}

.so-blurb li {
	margin-bottom: 0.4em;
}

.so-blurb h2,
.so-blurb h3,
.so-blurb h4 {
	font-family: 'Bebas Neue', -apple-system, sans-serif;
	color: #a67c0a;
	letter-spacing: 0.03em;
	text-transform: uppercase;
	margin-top: 1em;
	margin-bottom: 0.4em;
}

.so-event-description {
	font-size: 1.08em;
	line-height: 1.75;
	color: #2b2b2b;
}

.so-event-description p {
	margin-bottom: 1.2em;
}

.so-event-description h2,
.so-event-description h3,
.so-event-description h4 {
	font-family: 'Bebas Neue', -apple-system, sans-serif;
	color: var(--so-gold);
	margin-top: 1.6em;
	margin-bottom: 0.5em;
	letter-spacing: 0.03em;
	font-weight: 400;
	text-transform: uppercase;
}

.so-event-description h2 {
	font-size: 1.9em;
	border-bottom: 2px solid var(--so-gold);
	padding-bottom: 6px;
}

.so-event-description h3 {
	font-size: 1.5em;
}

.so-event-description h4 {
	font-size: 1.25em;
	letter-spacing: 0.06em;
}

.so-event-description a {
	color: var(--so-gold);
	font-weight: 600;
}

.so-event-description blockquote {
	border-left: 4px solid var(--so-gold);
	margin: 1.2em 0;
	padding: 0.4em 1.2em;
	background: #faf6ea;
	font-style: italic;
	color: #444;
}

.so-event-description ul,
.so-event-description ol {
	margin: 1em 0 1.2em 1.4em;
}

.so-event-description li {
	margin-bottom: 0.4em;
}

/* ===== v0.12.0 additions — Login, Account Bar, Inbox ===== */

.so-account-bar {
	display: flex;
	align-items: center;
	gap: 12px;
	flex-wrap: wrap;
	font-size: 0.9em;
	color: #666;
	margin-bottom: 16px;
}

.so-account-name {
	font-weight: 600;
}

a.so-btn-account {
	padding: 8px 16px;
	font-size: 0.95em;
}

.so-inbox-badge {
	display: inline-block;
	background: #c0392b;
	color: #fff;
	font-size: 0.75em;
	font-weight: 700;
	padding: 1px 6px;
	border-radius: 10px;
	margin-left: 2px;
}

.so-login-wrap {
	max-width: 420px;
}

/* Inbox */
.so-inbox-wrap h2 {
	font-family: 'Bebas Neue', -apple-system, sans-serif;
	letter-spacing: 0.03em;
	color: #1c1712;
}

.so-inbox-columns {
	display: flex;
	gap: 24px;
	align-items: flex-start;
}

.so-inbox-thread-list {
	flex: 0 0 260px;
}

.so-inbox-thread-view {
	flex: 1;
	min-width: 0;
}

.so-thread-list {
	list-style: none;
	margin: 0;
	padding: 0;
}

.so-thread-item {
	border-bottom: 1px solid #eee;
}

.so-thread-item a {
	text-decoration: none;
	color: #333;
}

.so-thread-item.so-thread-active a {
	background: #fbf6ea;
}

.so-thread-name {
	font-weight: 700;
	display: block;
}

.so-thread-unread {
	display: inline-block;
	background: #c0392b;
	color: #fff;
	font-size: 0.7em;
	font-weight: 700;
	padding: 1px 6px;
	border-radius: 10px;
	margin-left: 4px;
}

.so-thread-preview {
	display: block;
	font-size: 0.85em;
	color: #888;
	margin-top: 2px;
}

.so-inbox-new {
	margin-top: 20px;
	padding-top: 16px;
	border-top: 1px dashed var(--so-gold);
}

.so-inbox-new h4 {
	margin-bottom: 8px;
}

.so-inbox-new select {
	padding: 6px;
	margin-right: 6px;
}

.so-thread-messages {
	max-height: 420px;
	overflow-y: auto;
	margin-bottom: 16px;
	padding-right: 6px;
}

.so-message {
	margin-bottom: 12px;
	max-width: 75%;
}

.so-message-theirs {
	margin-right: auto;
}

.so-message-mine {
	margin-left: auto;
	text-align: right;
}

.so-message-meta {
	font-size: 0.75em;
	color: #999;
	margin-bottom: 2px;
}

.so-message-body {
	display: inline-block;
	padding: 8px 12px;
	border-radius: 8px;
	background: #f2f2f2;
	color: #222;
	text-align: left;
	white-space: pre-wrap;
	word-break: break-word;
}

.so-message-mine .so-message-body {
	background: var(--so-gold);
	color: #1c1712;
}

.so-reply-form {
	display: flex;
	gap: 8px;
	align-items: flex-end;
}

.so-reply-form textarea {
	flex: 1;
	padding: 8px;
	box-sizing: border-box;
	font-family: inherit;
}

@media (max-width: 700px) {
	.so-inbox-columns {
		flex-direction: column;
	}
	.so-inbox-thread-list {
		flex: 1 1 auto;
		width: 100%;
	}
}

/* ===== v0.12.1 additions ===== */

.so-back-link {
	margin-bottom: 16px;
}

.so-back-link a {
	color: #a67c0a;
	font-weight: 600;
	text-decoration: none;
}

.so-back-link a:hover {
	text-decoration: underline;
}

/* ===== v0.14.0 additions — Unread Message Popup ===== */

.so-popup-overlay {
	position: fixed;
	top: 0;
	left: 0;
	width: 100%;
	height: 100%;
	background: rgba(0,0,0,0.55);
	display: flex;
	align-items: center;
	justify-content: center;
	z-index: 99999;
}

.so-popup-box {
	background: #fff;
	border: 3px solid var(--so-gold, #d4a017);
	border-radius: 8px;
	padding: 28px 30px;
	max-width: 380px;
	width: 90%;
	text-align: center;
	box-shadow: 0 10px 40px rgba(0,0,0,0.3);
}

.so-popup-box h3 {
	font-family: 'Bebas Neue', -apple-system, sans-serif;
	font-size: 1.8em;
	letter-spacing: 0.03em;
	color: #1c1712;
	margin: 0 0 10px 0;
	text-transform: uppercase;
}

.so-popup-box p {
	color: #444;
	margin-bottom: 20px;
}

.so-popup-actions {
	display: flex;
	gap: 10px;
	justify-content: center;
	flex-wrap: wrap;
}

/* ===== v0.15.0 additions — Bulk Blast Messaging ===== */

.so-blast-panel {
	margin-bottom: 20px;
}

.so-blast-member-list {
	max-height: 220px;
	overflow-y: auto;
	border: 1px solid #eee;
	border-radius: 6px;
	padding: 10px 14px;
	margin-bottom: 14px;
}

.so-blast-member {
	display: block;
	font-weight: 400;
	padding: 4px 0;
}

.so-blast-member input {
	margin-right: 6px;
}

/* ===== v0.15.1 additions — Inbox Avatars ===== */

.so-inbox-heading {
	display: flex;
	align-items: center;
	gap: 10px;
}

.so-inbox-heading img {
	border-radius: 50%;
	display: block;
}

.so-thread-link {
	display: flex;
	align-items: flex-start;
	gap: 10px;
	padding: 10px 4px;
	text-decoration: none;
	color: #333;
}

.so-thread-avatar img {
	border-radius: 50%;
	display: block;
}

.so-thread-text {
	flex: 1;
	min-width: 0;
}

.so-message-row {
	display: flex;
	align-items: flex-end;
	gap: 8px;
}

.so-message-mine .so-message-row {
	flex-direction: row-reverse;
}

.so-message-avatar img {
	border-radius: 50%;
	display: block;
}

.so-message-content {
	max-width: 100%;
}

/* ===== v0.16.0 additions — Duration dropdown + Map embed ===== */

.so-map-box {
	border: 2px solid var(--so-gold);
	border-radius: 6px;
	overflow: hidden;
	margin-bottom: 20px;
}

.so-map-box iframe {
	display: block;
}

.so-duration-custom-input {
	max-width: 260px;
}

/* ===== v0.17.0 additions — Crop Tool ===== */

.so-crop-modal {
	position: fixed;
	top: 0; left: 0;
	width: 100%; height: 100%;
	background: rgba(0,0,0,0.65);
	z-index: 999999;
	display: flex;
	align-items: center;
	justify-content: center;
}

.so-crop-modal-inner {
	background: #fff;
	border-radius: 8px;
	padding: 20px;
	max-width: 95vw;
}

.so-crop-viewport {
	width: 600px;
	max-width: 100%;
	height: 400px;
	overflow: hidden;
	position: relative;
	background: #222;
	border-radius: 6px;
	margin: 10px 0;
	touch-action: none;
}

.so-crop-viewport img {
	position: absolute !important;
	top: 0 !important; left: 0 !important;
	max-width: none !important;
	transform-origin: 0 0;
	cursor: grab;
	user-select: none;
}

.so-crop-grid {
	position: absolute;
	top: 0; left: 0;
	width: 100%; height: 100%;
	pointer-events: none;
}

.so-crop-grid-line {
	position: absolute;
	background: rgba(255,255,255,0.6);
}

.so-crop-grid-v1 { left: 33.333%; top: 0; width: 1px; height: 100%; }
.so-crop-grid-v2 { left: 66.666%; top: 0; width: 1px; height: 100%; }
.so-crop-grid-h1 { top: 33.333%; left: 0; height: 1px; width: 100%; }
.so-crop-grid-h2 { top: 66.666%; left: 0; height: 1px; width: 100%; }

.so-crop-zoom-row {
	display: flex;
	align-items: center;
	gap: 10px;
	margin: 10px 0 6px 0;
}

.so-crop-zoom-icon {
	font-size: 1.3em;
	font-weight: 700;
	color: #555;
	cursor: pointer;
	user-select: none;
	width: 22px;
	text-align: center;
}

.so-crop-zoom-row #so-crop-zoom {
	flex: 1;
	margin: 0;
}

.so-crop-reset-btn {
	background: none;
	border: 1px solid #ccc;
	border-radius: 50%;
	width: 30px;
	height: 30px;
	font-size: 1.1em;
	cursor: pointer;
	color: #555;
}

.so-crop-reset-btn:hover {
	background: #f5f5f5;
}

.so-crop-buttons {
	display: flex;
	gap: 10px;
	margin-top: 10px;
}

/* ===== v0.17.0 additions — One-on-One Time Slots ===== */

.so-one-on-one-rows {
	margin-bottom: 10px;
}

.so-one-on-one-row {
	display: flex;
	gap: 8px;
	margin-bottom: 8px;
	align-items: center;
	flex-wrap: wrap;
}

.so-one-on-one-row select {
	padding: 6px;
	max-width: 160px;
}

/* ===== v0.19.4 additions — One-on-One Hour/Min/AM-PM time picker ===== */

.so-time-picker {
	display: inline-flex;
	gap: 4px;
}

.so-time-picker select {
	max-width: 70px;
}

.so-time-to {
	color: #666;
}

/* ===== v0.19.0 additions — One-on-One redesign + display ===== */

.so-slot-list {
	display: flex;
	flex-direction: column;
	gap: 6px;
}

.so-slot-row {
	display: flex;
	align-items: center;
	gap: 12px;
	padding: 6px 4px;
	border-bottom: 1px solid #eee;
}

.so-slot-time {
	font-weight: 600;
	color: #444;
	min-width: 150px;
}

.so-slot-person {
	display: flex;
	align-items: center;
	gap: 8px;
	color: #333;
}

.so-slot-person img {
	border-radius: 50%;
}

.so-slot-open {
	color: #999;
	font-style: italic;
}

/* ===== v0.19.7 additions — inline admin slot-assign dropdown ===== */

.so-slot-assign-form {
	margin-left: auto;
}

.so-slot-assign-select {
	padding: 4px 6px;
	max-width: 160px;
}

/* ===== v0.19.0 additions — Sidebar Widget ===== */

.so-widget-rotator {
	position: relative;
}

.so-widget-slide {
	display: block;
}

.so-widget-image {
	width: 100%;
	height: auto;
	border-radius: 6px;
	display: block;
}

.so-widget-caption {
	margin-top: 8px;
}

.so-widget-title {
	display: block;
	font-family: 'Bebas Neue', -apple-system, sans-serif;
	font-size: 1.1em;
	letter-spacing: 0.02em;
	color: #1c1712;
	text-decoration: none;
	line-height: 1.2;
}

.so-widget-title:hover {
	color: #a67c0a;
}

.so-widget-date {
	display: block;
	font-size: 0.8em;
	color: #a67c0a;
	font-weight: 600;
	margin-top: 2px;
}

.so-widget-excerpt {
	font-size: 0.82em;
	color: #666;
	line-height: 1.4;
	margin: 4px 0 0 0;
}
