/* Login and add-entry pages. Selectors stay page-scoped to preserve legacy forms elsewhere. */
.ep-auth-page,
.ep-add-entry-page {
	box-sizing:border-box;
	width:100%;
	max-width:960px;
	margin:0 auto;
	padding:32px 18px 40px;
	color:#302926;
	font-family:Calibri,Helvetica,Arial,sans-serif;
}
.ep-form-eyebrow {
	margin:0 0 6px;
	color:#9f2d1f;
	font-size:.76rem;
	font-weight:700;
	letter-spacing:.08em;
	line-height:1.2;
	text-transform:uppercase;
}
.ep-auth-page {
	display:grid;
	grid-template-columns:minmax(0,1.05fr) minmax(260px,.95fr);
	gap:24px;
	align-items:stretch;
}
.ep-auth-card,
.ep-auth-aside,
.ep-add-entry-card,
.ep-add-entry-map-card,
.ep-add-entry-auth {
	box-sizing:border-box;
	border:1px solid #eadfd9;
	border-radius:12px;
	background:#fff;
	box-shadow:0 8px 24px rgba(68,43,33,.08);
}
.ep-auth-card {
	padding:30px;
}
.ep-auth-card h1,
.ep-add-entry-hero h1,
.ep-add-entry-card h2,
.ep-add-entry-map-card h2,
.ep-add-entry-auth h2 {
	margin:0;
	color:#302926;
	font-weight:700;
	line-height:1.14;
}
.ep-auth-card h1,
.ep-add-entry-hero h1 {
	font-size:2rem;
}
.ep-auth-card__intro,
.ep-add-entry-hero p,
.ep-add-entry-card__header p,
.ep-add-entry-map-card__copy p,
.ep-add-entry-auth p {
	color:#665b56;
	font-size:1rem;
	line-height:1.5;
}
.ep-auth-card__intro {
	margin:10px 0 24px;
}
.ep-auth-form {
	margin:0;
}
.ep-form-field {
	box-sizing:border-box;
	min-width:0;
	margin:0 0 16px;
}
.ep-form-field label,
.ep-add-entry-details__title {
	display:block;
	margin:0 0 6px;
	color:#433834;
	font-size:.92rem;
	font-weight:700;
	line-height:1.2;
}
.ep-auth-page input[type="text"],
.ep-auth-page input[type="password"],
.ep-add-entry-page input[type="text"],
.ep-add-entry-page textarea,
.ep-add-entry-page select {
	box-sizing:border-box;
	width:100%;
	min-height:42px;
	margin:0;
	border:1px solid #cdbfba;
	border-radius:6px;
	background:#fff;
	color:#2f2927;
	padding:9px 11px;
	font:1rem Calibri,Helvetica,Arial,sans-serif;
}
.ep-auth-page input:focus,
.ep-add-entry-page input:focus,
.ep-add-entry-page select:focus,
.ep-add-entry-page textarea:focus {
	border-color:#9f2d1f;
	outline:3px solid rgba(159,45,31,.16);
	outline-offset:1px;
}
.ep-checkbox {
	display:flex;
	align-items:center;
	gap:8px;
	margin:0 0 20px;
	color:#5a4d48;
	font-size:.92rem;
	cursor:pointer;
}
.ep-checkbox input {
	width:16px;
	height:16px;
	margin:0;
	accent-color:#9f2d1f;
}
.ep-form-submit,
.ep-form-secondary {
	display:inline-flex;
	box-sizing:border-box;
	align-items:center;
	justify-content:center;
	min-height:42px;
	border-radius:6px;
	padding:10px 16px;
	font:700 .95rem Calibri,Helvetica,Arial,sans-serif;
	line-height:20px;
	text-decoration:none;
	cursor:pointer;
}
.ep-form-submit,
.ep-auth-page .ep-form-submit.button,
.ep-add-entry-page .ep-form-submit.button {
	border:1px solid #9f2d1f;
	background:#9f2d1f;
	color:#fff;
}
.ep-form-submit:hover,
.ep-form-submit:focus,
.ep-auth-page .ep-form-submit.button:hover,
.ep-add-entry-page .ep-form-submit.button:hover {
	border-color:#7d2117;
	background:#7d2117;
	color:#fff;
	text-decoration:none;
}
.ep-auth-page .ep-form-submit {
	width:100%;
}
.ep-auth-card__links {
	display:flex;
	flex-wrap:wrap;
	gap:8px 14px;
	margin-top:22px;
	padding-top:18px;
	border-top:1px solid #eee4df;
	color:#665b56;
	font-size:.9rem;
}
.ep-auth-card__links a {
	color:#9f2d1f;
	font-weight:700;
	text-decoration:none;
}
.ep-auth-card__links a:hover,
.ep-auth-card__links a:focus {
	text-decoration:underline;
}
.ep-auth-aside {
	display:flex;
	flex-direction:column;
	justify-content:center;
	padding:30px;
	background:linear-gradient(145deg,#fff9f5 0%,#fff 82%);
}
.ep-auth-aside h2 {
	margin:0;
	color:#422c25;
	font-size:1.55rem;
	line-height:1.2;
}
.ep-auth-aside > p:not(.ep-form-eyebrow) {
	margin:12px 0 18px;
	color:#665b56;
	line-height:1.5;
}
.ep-auth-aside ul {
	margin:0;
	padding:0;
	list-style:none;
}
.ep-auth-aside li {
	position:relative;
	margin:10px 0 0;
	padding-left:24px;
	color:#493d38;
}
.ep-auth-aside li:before {
	position:absolute;
	left:0;
	color:#9f2d1f;
	content:"✓";
	font-weight:700;
}
.ep-add-entry-hero {
	margin:0 0 22px;
	padding:24px 26px;
	border:1px solid #f0dfd6;
	border-radius:12px;
	background:linear-gradient(135deg,#fff7f2 0%,#fff 72%);
}
.ep-add-entry-hero p:last-child {
	max-width:680px;
	margin:9px 0 0;
}
.ep-add-entry-layout {
	display:grid;
	grid-template-columns:minmax(0,1.2fr) minmax(280px,.8fr);
	gap:22px;
	align-items:start;
}
.ep-add-entry-card {
	padding:25px;
}
.ep-add-entry-card__header {
	margin-bottom:22px;
}
.ep-add-entry-card h2,
.ep-add-entry-map-card h2,
.ep-add-entry-auth h2 {
	font-size:1.45rem;
}
.ep-add-entry-card__header p:last-child {
	margin:8px 0 0;
	font-size:.95rem;
}
.ep-add-entry-form {
	display:grid;
	grid-template-columns:repeat(2,minmax(0,1fr));
	gap:0 14px;
}
.ep-add-entry-form .ep-form-field {
	margin-bottom:17px;
}
.ep-add-entry-form .ep-form-field--full,
.ep-add-entry-action,
.ep-add-entry-details {
	grid-column:1 / -1;
}
.ep-place-search {
	display:flex;
	gap:8px;
}
.ep-place-search input {
	flex:1 1 auto;
	min-width:0;
}
#search_osm {
	flex:0 0 auto;
	min-height:42px;
	border:1px solid #9f2d1f;
	border-radius:6px;
	background:#9f2d1f;
	color:#fff;
	padding:0 14px;
	font:700 .9rem Calibri,Helvetica,Arial,sans-serif;
	cursor:pointer;
}
#search_osm:hover,
#search_osm:focus {
	border-color:#7d2117;
	background:#7d2117;
}
.ep-field-help {
	margin:6px 0 0;
	color:#786b65;
	font-size:.82rem;
	line-height:1.35;
}
.ep-add-entry-details {
	box-sizing:border-box;
	margin:0 0 18px;
	padding:16px;
	border:1px solid #eadbd4;
	border-radius:8px;
	background:#fffaf7;
}
.ep-add-entry-details input {
	margin-top:8px !important;
}
.ep-add-entry-details__title {
	margin-bottom:2px;
}
.ep-add-entry-action {
	margin-top:2px;
}
.ep-add-entry-action .ep-form-submit {
	width:100%;
}
.ep-add-entry-map-card {
	overflow:hidden;
}
.ep-add-entry-map-card__copy {
	padding:24px 24px 18px;
}
.ep-add-entry-map-card__copy p:last-child {
	margin:8px 0 0;
	font-size:.94rem;
}
.ep-add-entry-map {
	box-sizing:border-box;
	width:100% !important;
	height:360px !important;
	margin:0 !important;
	border-top:1px solid #eadfd9;
}
.ep-venue-search-status {
	min-height:20px;
	margin:7px 0 0;
	color:#665b56;
	font-size:.86rem;
	line-height:1.4;
}
.ep-venue-search-status.is-error {
	color:#9d2a1d;
}
#search_osm:disabled {
	border-color:#bba9a2;
	background:#bba9a2;
	cursor:wait;
}
.ep-venue-map-empty {
	display:flex;
	box-sizing:border-box;
	min-height:280px;
	flex-direction:column;
	align-items:center;
	justify-content:center;
	gap:8px;
	border-top:1px solid #eadfd9;
	background:#fffaf7;
	color:#786b65;
	text-align:center;
}
.ep-venue-map-empty span {
	color:#9f2d1f;
	font-size:2.4rem;
	line-height:1;
}
.ep-venue-map-empty p {
	margin:0;
	font-size:.9rem;
}
.ep-add-entry-map .leaflet-control-attribution {
	font-size:10px;
}
.ep-existing-venue-results {
	box-sizing:border-box;
	grid-column:1 / -1;
	padding:18px;
	border-top:1px solid #cfe0d4;
	background:#f3faf5;
}
.ep-existing-venue-results h3 {
	margin:0;
	color:#244f35;
	font-size:1.15rem;
}
.ep-existing-venue-help {
	margin:7px 0 12px;
	color:#53665a;
	font-size:.82rem;
	line-height:1.4;
}
.ep-existing-venue-list {
	display:flex;
	flex-direction:column;
	gap:8px;
}
.ep-existing-venue {
	display:block;
	width:100%;
	border:1px solid #9fc4aa;
	border-radius:8px;
	background:#fff;
	color:#302926;
	padding:12px;
	text-align:left;
	cursor:pointer;
}
.ep-existing-venue:hover,
.ep-existing-venue:focus {
	border-color:#2e6844;
	outline:3px solid rgba(46,104,68,.14);
}
.ep-existing-venue__badge,
.ep-existing-venue__name,
.ep-existing-venue__address,
.ep-existing-venue__meta {
	display:block;
}
.ep-existing-venue__badge {
	margin-bottom:3px;
	color:#2e6844;
	font-size:.68rem;
	font-weight:700;
	letter-spacing:.05em;
	text-transform:uppercase;
}
.ep-existing-venue__name {
	font-size:.98rem;
	font-weight:700;
}
.ep-existing-venue__address,
.ep-existing-venue__meta {
	margin-top:3px;
	color:#647169;
	font-size:.78rem;
	line-height:1.3;
}
.ep-existing-venue__meta {
	color:#2e6844;
	font-weight:700;
}
.ep-venue-numbered-marker {
	display:flex;
	width:28px;
	height:28px;
	align-items:center;
	justify-content:center;
	border:2px solid #fff;
	border-radius:50%;
	background:#765f55;
	box-shadow:0 2px 7px rgba(47,35,30,.35);
	color:#fff;
	font:700 12px/1 Calibri,Helvetica,Arial,sans-serif;
}
.ep-venue-numbered-marker.is-best {
	background:#9f2d1f;
}
.ep-venue-numbered-marker.is-selected {
	width:32px;
	height:32px;
	margin:-2px 0 0 -2px;
	background:#2e6844;
	box-shadow:0 0 0 3px rgba(46,104,68,.22),0 2px 8px rgba(47,35,30,.35);
}
.ep-venue-results {
	padding:18px;
	border-top:1px solid #eadfd9;
	background:#fff;
}
.ep-venue-results__header {
	display:flex;
	align-items:flex-start;
	justify-content:space-between;
	gap:12px;
}
.ep-venue-results__header h3 {
	margin:0;
	color:#302926;
	font-size:1.15rem;
	line-height:1.2;
}
.ep-venue-link-button {
	flex:0 0 auto;
	border:0;
	background:transparent;
	color:#9f2d1f;
	padding:2px 0;
	font:700 .82rem Calibri,Helvetica,Arial,sans-serif;
	text-decoration:underline;
	cursor:pointer;
}
.ep-venue-link-button:disabled {
	color:#9b918c;
	cursor:default;
	text-decoration:none;
}
.ep-venue-filter {
	display:block;
	margin:15px 0 10px;
	color:#594b45;
	font-size:.8rem;
	font-weight:700;
}
.ep-add-entry-page .ep-venue-filter input[type="search"] {
	box-sizing:border-box;
	width:100%;
	min-height:38px;
	margin-top:5px;
	border:1px solid #cdbfba;
	border-radius:6px;
	background:#fff;
	padding:7px 9px;
	font:1rem Calibri,Helvetica,Arial,sans-serif;
}
.ep-add-entry-page .ep-venue-filter input[type="search"]:focus {
	border-color:#9f2d1f;
	outline:3px solid rgba(159,45,31,.16);
	outline-offset:1px;
}
.ep-venue-result-list {
	display:flex;
	max-height:330px;
	flex-direction:column;
	gap:8px;
	overflow-y:auto;
	padding:2px;
}
.ep-venue-result {
	position:relative;
	display:grid;
	width:100%;
	grid-template-columns:30px minmax(0,1fr);
	gap:10px;
	border:1px solid #e2d6d0;
	border-radius:8px;
	background:#fff;
	color:#433834;
	padding:11px;
	text-align:left;
	cursor:pointer;
}
.ep-venue-result:hover,
.ep-venue-result:focus {
	border-color:#ba877b;
	outline:2px solid rgba(159,45,31,.12);
}
.ep-venue-result[aria-selected="true"] {
	border-color:#2e6844;
	background:#f3faf5;
	box-shadow:0 0 0 2px rgba(46,104,68,.12);
}
.ep-venue-result__number {
	display:flex;
	width:26px;
	height:26px;
	align-items:center;
	justify-content:center;
	border-radius:50%;
	background:#765f55;
	color:#fff;
	font-size:.75rem;
	font-weight:700;
}
.ep-venue-result:first-child .ep-venue-result__number {
	background:#9f2d1f;
}
.ep-venue-result[aria-selected="true"] .ep-venue-result__number {
	background:#2e6844;
}
.ep-venue-result__label {
	display:block;
	margin-bottom:3px;
	color:#9f2d1f;
	font-size:.68rem;
	font-weight:700;
	letter-spacing:.05em;
	text-transform:uppercase;
}
.ep-venue-result__name {
	display:block;
	color:#302926;
	font-size:.96rem;
	font-weight:700;
	line-height:1.25;
}
.ep-venue-result__address,
.ep-venue-result__meta {
	display:block;
	margin-top:3px;
	color:#746761;
	font-size:.78rem;
	line-height:1.3;
}
.ep-venue-no-filter-results {
	margin:8px 0;
	color:#786b65;
	font-size:.84rem;
}
.ep-venue-manual {
	width:100%;
	margin-top:12px;
}
.ep-osm-attribution {
	margin:13px 0 0;
	color:#786b65;
	font-size:.7rem;
	line-height:1.4;
}
.ep-osm-attribution a {
	color:#765f55;
}
.ep-venue-popup {
	min-width:190px;
}
.ep-venue-popup strong,
.ep-venue-popup span {
	display:block;
}
.ep-venue-popup span {
	margin-top:3px;
	color:#665b56;
}
.ep-venue-popup button {
	width:100%;
	margin-top:9px;
	border:1px solid #9f2d1f;
	border-radius:5px;
	background:#9f2d1f;
	color:#fff;
	padding:7px 9px;
	font-weight:700;
	cursor:pointer;
}
.ep-venue-popup button:disabled {
	border-color:#2e6844;
	background:#2e6844;
	cursor:default;
}
.ep-add-entry-auth {
	max-width:640px;
	margin:0 auto;
	padding:30px;
	text-align:center;
}
.ep-add-entry-auth p {
	margin:9px auto 20px;
}
.ep-add-entry-auth__actions {
	display:flex;
	justify-content:center;
	gap:10px;
}
.ep-form-secondary {
	border:1px solid #9f2d1f;
	background:#fff;
	color:#8b281d;
}
.ep-form-secondary:hover,
.ep-form-secondary:focus {
	background:#fff5ee;
}
/* The existing registration dialog is opened from these pages; give it compatible inputs. */
#registerdiv input {
	box-sizing:border-box;
	min-height:32px;
	border:1px solid #cdbfba;
	border-radius:5px;
	padding:5px 7px;
}
#registerdiv input:focus {
	border-color:#9f2d1f;
	outline:2px solid rgba(159,45,31,.16);
}
@media screen and (max-width:760px) {
	.ep-auth-page,
	.ep-add-entry-layout {
		grid-template-columns:1fr;
	}
	.ep-auth-page,
	.ep-add-entry-page {
		padding:20px 12px 30px;
	}
	.ep-auth-card,
	.ep-auth-aside,
	.ep-add-entry-card,
	.ep-add-entry-auth {
		padding:22px 18px;
	}
	.ep-auth-card h1,
	.ep-add-entry-hero h1 {
		font-size:1.65rem;
	}
	.ep-add-entry-hero {
		padding:20px 18px;
	}
	.ep-add-entry-map-card {
		grid-row:2;
	}
	.ep-add-entry-map {
		height:300px !important;
	}
}
@media screen and (max-width:480px) {
	.ep-add-entry-form {
		grid-template-columns:1fr;
	}
	.ep-place-search {
		flex-direction:column;
	}
	#search_osm {
		width:100%;
	}
	.ep-add-entry-auth__actions {
		flex-direction:column;
	}
	.ep-add-entry-auth__actions > * {
		width:100%;
	}
}

/* Password-recovery and account-security pages. */
.ep-account-page {
	box-sizing:border-box;
	width:100%;
	max-width:760px;
	margin:0 auto;
	padding:34px 18px 42px;
	color:#302926;
	font-family:Calibri,Helvetica,Arial,sans-serif;
}
.ep-account-card {
	box-sizing:border-box;
	padding:30px;
	border:1px solid #eadfd9;
	border-radius:12px;
	background:#fff;
	box-shadow:0 8px 24px rgba(68,43,33,.08);
}
.ep-account-card h1 {
	margin:0;
	color:#302926;
	font-size:2rem;
	line-height:1.14;
}
.ep-account-card__intro {
	margin:10px 0 24px;
	color:#665b56;
	line-height:1.5;
}
.ep-account-form { margin:0; }
.ep-account-form .ep-form-field { margin-bottom:16px; }
.ep-account-page input[type="email"],
.ep-account-page input[type="password"],
.ep-account-page input[type="text"] {
	box-sizing:border-box;
	width:100%;
	min-height:42px;
	margin:0;
	border:1px solid #cdbfba;
	border-radius:6px;
	background:#fff;
	color:#2f2927;
	padding:9px 11px;
	font:1rem Calibri,Helvetica,Arial,sans-serif;
}
.ep-account-page input:focus {
	border-color:#9f2d1f;
	outline:3px solid rgba(159,45,31,.16);
	outline-offset:1px;
}
.ep-account-notice {
	margin:0 0 20px;
	padding:13px 15px;
	border:1px solid #eadbd4;
	border-radius:8px;
	background:#fffaf7;
	color:#5f514b;
	line-height:1.45;
}
.ep-account-notice--success {
	border-color:#b7d9c1;
	background:#f3fbf5;
	color:#24643a;
}
.ep-account-notice--error {
	border-color:#ecc9c3;
	background:#fff5f3;
	color:#9d2a1d;
}
.ep-account-actions {
	display:flex;
	flex-wrap:wrap;
	gap:10px 14px;
	align-items:center;
	margin-top:20px;
}
.ep-account-actions a {
	color:#9f2d1f;
	font-weight:700;
	text-decoration:none;
}
.ep-account-actions a:hover,
.ep-account-actions a:focus { text-decoration:underline; }
@media screen and (max-width:760px) {
	.ep-account-page { padding:22px 12px 32px; }
	.ep-account-card { padding:22px 18px; }
	.ep-account-card h1 { font-size:1.65rem; }
}