/* Agent login + front-end dashboard. Token-driven only, reuses site components. */

/* ---------- Auth (login / forgot / reset) ---------- */
.zre-auth-main { display: flex; justify-content: center; padding: var(--space-9) var(--container-pad); }
.zre-auth-card {
	width: 100%;
	max-width: 420px;
	background: var(--color-surface);
	border: 1px solid var(--color-border);
	border-radius: var(--radius-lg);
	box-shadow: var(--shadow-panel);
	padding: var(--space-7);
}
.zre-auth-card h1 { font-size: 1.6rem; margin-bottom: var(--space-5); }
.zre-auth-form { display: grid; gap: var(--space-4); }
.zre-auth-form .zre-field label { display: block; margin-bottom: 5px; }
.zre-auth-form input {
	width: 100%;
	border: 1.5px solid var(--color-border);
	border-radius: var(--radius-sm);
	padding: 11px 13px;
	background: var(--color-surface);
	color: var(--color-ink);
	font-size: var(--text-body);
}
.zre-auth-back { display: inline-block; margin-top: var(--space-5); font-size: var(--text-small); color: var(--color-cobalt); text-decoration: none; }
.zre-auth-back:hover { text-decoration: underline; }
.zre-auth-error { background: #FBEAEA; color: #A23B3B; border-radius: var(--radius-sm); padding: var(--space-3) var(--space-4); font-size: var(--text-small); margin-bottom: var(--space-4); }
.zre-auth-notice { background: var(--color-cobalt-tint); color: var(--color-navy); border-radius: var(--radius-sm); padding: var(--space-3) var(--space-4); font-size: var(--text-small); margin-bottom: var(--space-4); }

/* ---------- Dashboard shell ---------- */
.zre-dash { max-width: var(--container-max); margin: 0 auto; padding: var(--space-8) var(--container-pad); overflow-wrap: break-word; }
.zre-dash__head { display: flex; justify-content: space-between; align-items: center; flex-wrap: wrap; gap: var(--space-3); margin-bottom: var(--space-6); }
.zre-dash__head h1 { overflow-wrap: break-word; word-break: break-word; min-width: 0; }
.zre-dash__head-text { min-width: 0; flex: 1 1 auto; }
.zre-dash__logout { font-size: var(--text-small); color: var(--color-muted); text-decoration: none; }
.zre-dash__logout:hover { color: var(--color-cobalt); }

/* ---------- Property list ---------- */
.zre-dash-list { display: grid; gap: var(--space-3); }
.zre-dash-row {
	display: flex;
	align-items: center;
	gap: var(--space-4);
	background: var(--color-surface);
	border: 1px solid var(--color-border);
	border-radius: var(--radius-md);
	padding: var(--space-3) var(--space-4);
	flex-wrap: wrap;
}
.zre-dash-row__thumb { width: 72px; height: 54px; border-radius: var(--radius-sm); overflow: hidden; flex: none; background: var(--color-surface-alt); }
.zre-dash-row__thumb img { width: 100%; height: 100%; object-fit: cover; display: block; }
.zre-dash-row__main { flex: 1; min-width: 180px; }
.zre-dash-row__title { font-weight: 700; }
.zre-dash-row__meta { font-size: var(--text-small); color: var(--color-muted); }
.zre-dash-row__badges { display: flex; gap: var(--space-2); flex-wrap: wrap; }
.zre-dash-tag { font-size: var(--text-micro); font-weight: 800; text-transform: uppercase; letter-spacing: .03em; padding: 3px 9px; border-radius: var(--radius-pill); }
.zre-dash-tag--draft { background: var(--color-surface-alt); color: var(--color-muted); }
.zre-dash-tag--published { background: var(--color-cobalt-tint); color: var(--color-cobalt); }
.zre-dash-tag--featured { background: var(--color-gold-tint); color: var(--color-gold-deep); }
.zre-dash-row__actions { display: flex; gap: var(--space-2); flex-wrap: wrap; }
.zre-dash-row__actions form { display: inline; }
.zre-dash-row__actions .zre-btn { padding: 7px 12px; font-size: var(--text-micro); }
.zre-dash-empty { text-align: center; color: var(--color-muted); padding: var(--space-9) 0; }

/* ---------- Add/Edit form ---------- */
.zre-dash-form { display: grid; gap: var(--space-5); max-width: 720px; }
.zre-dash-form__row { display: grid; grid-template-columns: 1fr 1fr; gap: var(--space-4); }
.zre-dash-form__row--city-zip { grid-template-columns: 2fr 1fr; }
.zre-dash-form__row--triple { grid-template-columns: 1fr 1fr 1fr; }
.zre-dash-form__toggle-cell { align-self: end; padding-bottom: 10px; }
.zre-dash-form h2 { margin-top: var(--space-4); }
.zre-dash-photos-head { margin-top: var(--space-8); }
.zre-photo-upload-btn { margin-top: var(--space-3); }
.zre-dash-form label { display: block; font-size: var(--text-small); font-weight: 700; margin-bottom: 5px; }
.zre-dash-form input, .zre-dash-form select, .zre-dash-form textarea {
	width: 100%;
	border: 1.5px solid var(--color-border);
	border-radius: var(--radius-sm);
	padding: 10px 12px;
	background: var(--color-surface);
	color: var(--color-ink);
	font-family: inherit;
	font-size: var(--text-body);
}
.zre-dash-form textarea { min-height: 110px; resize: vertical; }
.zre-dash-toggle { display: flex; align-items: center; gap: var(--space-2); font-weight: 700; }
.zre-dash-toggle input { width: auto; }
.zre-dash-note { font-size: var(--text-micro); color: var(--color-muted); }

@media (max-width: 640px) {
	.zre-dash-form__row { grid-template-columns: 1fr; }
}

/* ---------- Photo manager ---------- */
.zre-photo-drop {
	border: 2px dashed var(--color-border);
	border-radius: var(--radius-md);
	padding: var(--space-6);
	text-align: center;
	color: var(--color-muted);
	transition: border-color .15s ease, background-color .15s ease;
}
.zre-photo-drop.is-dragover { border-color: var(--color-gold); background: var(--color-gold-tint); }
.zre-photo-drop input[type="file"] { display: block; margin: var(--space-3) auto 0; }

.zre-photo-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(120px, 1fr)); gap: var(--space-3); margin-top: var(--space-4); }
.zre-photo-tile {
	position: relative;
	aspect-ratio: 4/3;
	border-radius: var(--radius-sm);
	overflow: hidden;
	border: 2px solid var(--color-border);
	cursor: grab;
}
.zre-photo-tile.is-main { border-color: var(--color-gold); }
.zre-photo-tile img { width: 100%; height: 100%; object-fit: cover; display: block; }
.zre-photo-tile__badge {
	position: absolute; top: 6px; left: 6px;
	font-size: 10px; font-weight: 800; text-transform: uppercase; letter-spacing: .03em;
	background: var(--color-gold); color: var(--color-navy-deep); padding: 2px 7px; border-radius: var(--radius-pill);
}
.zre-photo-tile__actions { position: absolute; bottom: 4px; right: 4px; display: flex; gap: 4px; }
.zre-photo-tile__actions button {
	width: 24px; height: 24px; border-radius: 50%; border: none;
	background: rgba(16,35,63,.75); color: #fff; cursor: pointer; font-size: 12px;
	display: flex; align-items: center; justify-content: center;
}
.zre-photo-tile__actions button:hover { background: var(--color-navy); }
