/**
 * Latheen Matrimony Toolkit — front-end styles
 * Reuses the theme's CSS custom properties (--color-primary, --color-accent, etc.)
 * so it inherits the site's palette automatically. Falls back to sensible
 * defaults if the theme's variables aren't present.
 */

.lmt-search-wrap{ margin: 20px 0; }

.lmt-search-results-wrap{ padding-top: 50px; }

.lmt-search-results{
	margin-top: 36px;
}
.lmt-search-results .profiles-grid{
	display: grid;
	grid-template-columns: repeat(4, 1fr);
	gap: 24px;
}
@media (max-width: 1024px){
	.lmt-search-results .profiles-grid{ grid-template-columns: repeat(2, 1fr); }
}
.lmt-search-results .profiles-grid.is-list{ display:flex; flex-direction:column; gap:16px; }
.lmt-search-results .profiles-grid.is-list .profile-card{ display:flex; flex-direction:row; align-items:stretch; }
.lmt-search-results .profiles-grid.is-list .profile-photo{ flex: 0 0 150px; width:150px; height:auto; aspect-ratio:auto; }
.lmt-search-results .profiles-grid.is-list .profile-body{ flex:1; display:flex; flex-direction:column; justify-content:center; padding: 16px 22px; }
.lmt-search-results .profiles-grid.is-list .profile-meta{ display:flex; flex-wrap:wrap; gap:6px 18px; margin-bottom:12px; }
.lmt-search-results .profiles-grid.is-list .profile-meta span{ display:inline; }
.lmt-search-results .profiles-grid.is-list .profile-body .btn{ width:auto; align-self:flex-start; padding: 8px 20px; }
@media (max-width: 640px){
	.lmt-search-results .profiles-grid.is-list .profile-card{ flex-direction:column; }
	.lmt-search-results .profiles-grid.is-list .profile-photo{ flex-basis:auto; width:100%; aspect-ratio:4/3; }
}
.lmt-results-meta{
	display: flex; justify-content: space-between; align-items: center;
	margin-bottom: 18px; font-size: .9rem; color: var(--color-text-light, #5F6D6A);
}
.lmt-results-empty{
	text-align:center; padding: 40px 20px; color: var(--color-text-light, #5F6D6A);
	background: var(--color-cream, #FAF6F1); border-radius: 10px;
}
.lmt-loading{
	text-align:center; padding: 40px 20px; color: var(--color-text-light, #5F6D6A);
}
.lmt-loading::after{
	content:''; display:inline-block; width:18px; height:18px; margin-left:10px;
	border: 2px solid var(--color-border, #E5DDD3); border-top-color: var(--color-primary, #0E5C53);
	border-radius: 50%; animation: lmt-spin .7s linear infinite; vertical-align: middle;
}
@keyframes lmt-spin{ to{ transform: rotate(360deg); } }

.lmt-pagination{
	display:flex; justify-content:center; gap:10px; margin-top: 34px;
}
.lmt-pagination button{
	padding: 10px 20px; border-radius: 8px; border: 1px solid var(--color-border, #E5DDD3);
	background:#fff; cursor:pointer; font-weight:600; font-size:.9rem;
}
.lmt-pagination button:hover:not(:disabled){ border-color: var(--color-accent, #D97B4F); }
.lmt-pagination button:disabled{ opacity:.4; cursor:not-allowed; }

/* Add Profile form */
.lmt-add-profile-wrap{
	max-width: 900px; margin: 0 auto;
	background:#fff; border:1px solid var(--color-border, #E5DDD3); border-radius: 12px;
	padding: 40px;
}
.lmt-form-intro{ color: var(--color-text-light, #5F6D6A); margin-bottom: 26px; }
.lmt-form-grid{
	display:grid; grid-template-columns: 1fr 1fr; gap: 20px;
}
.lmt-form-grid .field{ display:flex; flex-direction:column; gap:6px; }
.lmt-form-grid .field-full{ grid-column: 1 / -1; }
.lmt-form-grid label{ font-weight:600; font-size:.88rem; color: var(--color-text, #20302D); }
.lmt-form-grid input[type="text"],
.lmt-form-grid input[type="email"],
.lmt-form-grid input[type="tel"],
.lmt-form-grid input[type="number"],
.lmt-form-grid input[type="file"],
.lmt-form-grid select,
.lmt-form-grid textarea{
	padding: 12px 14px; border: 1px solid var(--color-border, #E5DDD3); border-radius: 8px;
	background: var(--color-cream, #FAF6F1); width:100%;
}
.lmt-form-grid textarea{ resize: vertical; }
.lmt-consent label{ display:flex; align-items:flex-start; gap:8px; font-weight:400; font-size:.88rem; }
.lmt-consent input{ margin-top: 3px; }

.lmt-honeypot{ position:absolute !important; left:-9999px !important; width:1px; height:1px; overflow:hidden; }

.lmt-submit-btn{ margin-top: 26px; width: 100%; }
.lmt-submit-btn:disabled{ opacity:.6; cursor:not-allowed; }

.lmt-form-message{
	padding: 14px 18px; border-radius: 8px; margin-bottom: 22px; font-size:.92rem;
}
.lmt-form-message.success{ background:#eaf5ee; color: var(--color-success, #3f7a52); border:1px solid #cdead9; }
.lmt-form-message.error{ background:#fbeaea; color:#a3342b; border:1px solid #f3caca; }

/* Login / Dashboard */
.lmt-account-wrap{
	max-width: 460px; margin: 0 auto;
	background:#fff; border:1px solid var(--color-border, #E5DDD3); border-radius: 12px;
	padding: 40px;
}
.lmt-account-wrap h2{ margin-top:0; }
.lmt-account-wrap .lmt-form-grid{ display:grid; grid-template-columns: 1fr; gap: 18px; margin-bottom: 0; }
.lmt-toggle-forgot{
	background:none; border:none; padding: 16px 0 0; color: var(--color-primary, #0E5C53);
	font-size:.85rem; font-weight:600; cursor:pointer; text-decoration:underline;
}
#lmt-forgot-form{ margin-top: 16px; padding-top: 16px; border-top: 1px solid var(--color-border, #E5DDD3); }

.lmt-dashboard-header{
	display:flex; justify-content:space-between; align-items:center; gap: 12px;
	margin-bottom: 18px; flex-wrap: wrap;
}
.lmt-dashboard-header h2{ margin:0; font-size: 1.3rem; }
.lmt-logout-link{ font-size:.85rem; font-weight:600; }

.lmt-profile-status{
	background: var(--color-cream, #FAF6F1); border-radius: 8px; padding: 12px 16px;
	font-size:.88rem; margin-bottom: 26px;
}
.lmt-status-publish{ border-left: 4px solid var(--color-success, #3f7a52); }
.lmt-status-pending{ border-left: 4px solid var(--color-accent, #D97B4F); }

@media (max-width: 640px){
	.lmt-account-wrap{ padding: 26px; }
}

/* =========================================================
   Dashboard shell
   ========================================================= */
.lmt-dashboard{
	max-width: 980px; margin: 0 auto;
	background:#fff; border:1px solid var(--color-border, #E5DDD3); border-radius: 14px;
	padding: 32px; box-shadow: var(--shadow-soft, 0 8px 30px rgba(14,92,83,0.10));
}
.lmt-dashboard-topbar{
	display:flex; justify-content:space-between; align-items:center; gap:16px; flex-wrap:wrap;
	margin-bottom: 24px; padding-bottom: 22px; border-bottom: 1px solid var(--color-border, #E5DDD3);
}
.lmt-dashboard-identity{ display:flex; align-items:center; gap:16px; }
.lmt-dashboard-avatar{ width:64px; height:64px; border-radius:50%; object-fit:cover; object-position:center; border:2px solid var(--color-accent, #D97B4F); }
.lmt-dashboard-identity h2{ margin:0 0 6px; font-size:1.3rem; }
.lmt-plan-badge{
	display:inline-block; font-size:.72rem; font-weight:700; letter-spacing:.5px;
	padding: 4px 12px; border-radius: 20px; text-transform:uppercase;
}
.lmt-plan-badge.is-free{ background: var(--color-cream, #FAF6F1); color: var(--color-text-light, #5F6D6A); }
.lmt-plan-badge.is-premium{ background: var(--color-accent, #D97B4F); color:#fff; }
.lmt-dashboard-message{ margin-bottom: 20px; }

/* Tabs */
.lmt-dashboard-tabs{
	display:flex; gap:6px; margin-bottom: 26px; border-bottom: 2px solid var(--color-border, #E5DDD3);
	overflow-x:auto;
}
.lmt-tab{
	background:none; border:none; padding: 12px 18px; font-weight:600; font-size:.92rem;
	color: var(--color-text-light, #5F6D6A); cursor:pointer; white-space:nowrap;
	border-bottom: 3px solid transparent; margin-bottom:-2px;
}
.lmt-tab:hover{ color: var(--color-primary, #0E5C53); }
.lmt-tab.is-active{ color: var(--color-primary, #0E5C53); border-bottom-color: var(--color-accent, #D97B4F); }

.lmt-panel{ display:none; }
.lmt-panel.is-active{ display:block; }
.lmt-panel h3{ margin-top:0; }
.lmt-panel-intro{ color: var(--color-text-light, #5F6D6A); font-size:.9rem; margin-bottom:20px; }
.lmt-empty-note{ color: var(--color-text-light, #5F6D6A); font-size:.9rem; }

/* Plan card */
.lmt-plan-card{
	background: var(--color-cream, #FAF6F1); border-radius: 12px; padding: 24px; margin-top: 20px;
}
.lmt-plan-card.is-premium{ background: linear-gradient(120deg, var(--color-accent-light, #F0B98F) 0%, var(--color-cream, #FAF6F1) 100%); }
.lmt-plan-card h3{ margin-top:0; }
.lmt-plan-card p{ color: var(--color-text-light, #5F6D6A); }

/* =========================================================
   Photo gallery
   ========================================================= */
.lmt-gallery-grid{
	display:grid; grid-template-columns: repeat(5, 1fr); gap:14px;
}
.lmt-gallery-item{
	position:relative; aspect-ratio: 3/4; border-radius: 10px; overflow:hidden;
	border: 1px solid var(--color-border, #E5DDD3);
}
.lmt-gallery-item img{ width:100%; height:100%; object-fit:cover; object-position:center; display:block; }
.lmt-gallery-remove{
	position:absolute; top:6px; right:6px; width:24px; height:24px; border-radius:50%;
	background: rgba(0,0,0,0.55); color:#fff; border:none; cursor:pointer; font-size:1rem; line-height:1;
}
.lmt-gallery-remove:hover{ background: #a3342b; }
.lmt-gallery-upload{
	aspect-ratio: 3/4; border-radius: 10px; border: 2px dashed var(--color-border, #E5DDD3);
	display:flex; flex-direction:column; align-items:center; justify-content:center; gap:6px;
	cursor:pointer; color: var(--color-text-light, #5F6D6A); transition: border-color .2s ease;
}
.lmt-gallery-upload:hover{ border-color: var(--color-accent, #D97B4F); color: var(--color-primary, #0E5C53); }
.lmt-gallery-upload.is-uploading{ opacity:.5; pointer-events:none; }
.lmt-gallery-upload-icon{ font-size:1.6rem; line-height:1; }
.lmt-gallery-upload-text{ font-size:.75rem; font-weight:600; }
.lmt-gallery-count{ margin-top:14px; font-size:.82rem; color: var(--color-text-light, #5F6D6A); }

/* =========================================================
   Interests
   ========================================================= */
.lmt-interests-columns{ display:grid; grid-template-columns: 1fr 1fr; gap: 34px; }
.lmt-interest-list{ list-style:none; margin:0; padding:0; }
.lmt-interest-list li{
	display:flex; align-items:center; gap:12px; padding: 12px 0; border-bottom: 1px solid var(--color-border, #E5DDD3);
}
.lmt-interest-list img{ width:44px; height:44px; border-radius:50%; object-fit:cover; object-position:center; }
.lmt-interest-item-body{ flex:1; display:flex; flex-direction:column; }
.lmt-interest-item-body strong{ font-size:.92rem; }
.lmt-interest-item-body span{ font-size:.76rem; color: var(--color-text-light, #5F6D6A); }

/* Express Interest button (single profile page) */
.lmt-interest-widget{ margin-top: 18px; display:flex; align-items:center; gap:12px; flex-wrap:wrap; }
.lmt-interest-note{ font-size:.85rem; color: var(--color-text-light, #5F6D6A); }

/* =========================================================
   Chat
   ========================================================= */
.lmt-upsell-card{
	text-align:center; background: var(--color-cream, #FAF6F1); border-radius: 12px; padding: 46px 24px;
}
.lmt-upsell-card h3{ font-size:1.3rem; }
.lmt-upsell-card p{ color: var(--color-text-light, #5F6D6A); margin-bottom:22px; }

.lmt-chat{ display:grid; grid-template-columns: 260px 1fr; gap:0; border:1px solid var(--color-border, #E5DDD3); border-radius:12px; overflow:hidden; min-height:420px; }
.lmt-chat-list{ background: var(--color-cream, #FAF6F1); border-right:1px solid var(--color-border, #E5DDD3); overflow-y:auto; max-height:520px; }
.lmt-chat-list-item{
	display:flex; align-items:center; gap:10px; width:100%; text-align:left;
	background:none; border:none; border-bottom:1px solid var(--color-border, #E5DDD3);
	padding: 12px 14px; cursor:pointer;
}
.lmt-chat-list-item:hover, .lmt-chat-list-item.is-active{ background:#fff; }
.lmt-chat-list-item img{ width:38px; height:38px; border-radius:50%; object-fit:cover; object-position:center; flex-shrink:0; }
.lmt-chat-list-info{ flex:1; min-width:0; display:flex; flex-direction:column; }
.lmt-chat-list-info strong{ font-size:.86rem; }
.lmt-chat-snippet{ font-size:.76rem; color: var(--color-text-light, #5F6D6A); white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }
.lmt-chat-unread{
	background: var(--color-accent, #D97B4F); color:#fff; font-size:.7rem; font-weight:700;
	border-radius:50%; width:20px; height:20px; display:flex; align-items:center; justify-content:center; flex-shrink:0;
}
.lmt-chat-thread{ display:flex; flex-direction:column; }
.lmt-chat-thread-header{ padding: 14px 18px; border-bottom:1px solid var(--color-border, #E5DDD3); font-weight:700; }
.lmt-chat-messages{ flex:1; padding: 16px 18px; overflow-y:auto; max-height:420px; display:flex; flex-direction:column; gap:10px; }
.lmt-msg{ max-width:70%; padding: 10px 14px; border-radius: 14px; font-size:.88rem; display:flex; flex-direction:column; gap:2px; }
.lmt-msg-theirs{ align-self:flex-start; background: var(--color-cream, #FAF6F1); }
.lmt-msg-mine{ align-self:flex-end; background: var(--color-primary, #0E5C53); color:#fff; }
.lmt-msg-time{ font-size:.68rem; opacity:.65; align-self:flex-end; }
.lmt-chat-send-form{ display:flex; gap:10px; padding: 14px 18px; border-top:1px solid var(--color-border, #E5DDD3); }
.lmt-chat-input{ flex:1; padding: 10px 14px; border:1px solid var(--color-border, #E5DDD3); border-radius:8px; background: var(--color-cream, #FAF6F1); }
.lmt-chat-input:disabled{ opacity:.6; }

@media (max-width: 782px){
	.lmt-dashboard{ padding: 20px; }
	.lmt-interests-columns{ grid-template-columns: 1fr; }
	.lmt-gallery-grid{ grid-template-columns: repeat(3, 1fr); }
	.lmt-chat{ grid-template-columns: 1fr; }
	.lmt-chat-list{ max-height:180px; border-right:none; border-bottom:1px solid var(--color-border, #E5DDD3); }
}

@media (max-width: 640px){
	.lmt-form-grid{ grid-template-columns: 1fr; }
	.lmt-add-profile-wrap{ padding: 26px; }
}

/* =========================================================
   Photo privacy — hidden-photo placeholder & no-photo placeholder
   (output by lmt_render_profile_photo(), used everywhere a profile
   photo appears: cards, carousel, single profile page)
   ========================================================= */
.lmt-photo-hidden,
.lmt-photo-placeholder{
	width:100%; height:100%; display:flex; flex-direction:column; align-items:center; justify-content:center;
	gap:8px; background: var(--color-cream, #FAF6F1); text-align:center; padding: 14px;
}
.lmt-photo-hidden-icon,
.lmt-photo-placeholder-icon{ font-size:1.8rem; opacity:.55; }
.lmt-photo-hidden-text{
	font-size:.72rem; font-weight:600; color: var(--color-text-light, #5F6D6A); line-height:1.3;
}

/* Blurred variant — a real photo exists, so show a soft preview of it
   behind the lock remark instead of hiding it completely. */
.lmt-photo-hidden--blurred{
	position: relative;
	display: block;
	overflow: hidden;
	background: var(--color-cream, #FAF6F1);
}
.lmt-photo-hidden--blurred img{
	width: 100%;
	height: 100%;
	object-fit: cover;
	object-position: center;
	filter: blur(14px) brightness(0.9);
	transform: scale(1.15); /* hides the soft edge the blur leaves around the crop */
}
.lmt-photo-hidden--blurred .lmt-photo-hidden-overlay{
	position: absolute;
	inset: 0;
	display: flex;
	flex-direction: column;
	align-items: center;
	justify-content: center;
	gap: 8px;
	background: rgba(7,61,55,0.35);
	text-align: center;
	padding: 14px;
}
.profile-gallery-item.lmt-photo-hidden--blurred:hover img,
.lmt-photo-hidden--blurred:hover img{ transform: scale(1.15); } /* overrides the theme's gallery hover-zoom, which would otherwise fight with the blur's own scale and reveal its soft edge */
.lmt-photo-hidden--blurred{ cursor: default; }
.lmt-photo-hidden--blurred .lmt-photo-hidden-icon{
	font-size: 1.7rem;
	opacity: 1;
	color: #fff;
	text-shadow: 0 1px 4px rgba(0,0,0,0.4);
}
.lmt-photo-hidden--blurred .lmt-photo-hidden-text{
	color: #fff;
	text-shadow: 0 1px 4px rgba(0,0,0,0.4);
}

/* Checkbox fields (Hide Photo, etc.) inside dashboard forms */
.lmt-checkbox-label{
	display:flex; align-items:flex-start; gap:8px; font-weight:400; font-size:.88rem; cursor:pointer;
}
.lmt-checkbox-label input{ margin-top:3px; }

/* Interest Accept/Decline actions + status labels */
.lmt-interest-actions{ display:flex; align-items:center; gap:8px; flex-wrap:wrap; }
.lmt-interest-actions .btn{ padding: 7px 14px; font-size:.78rem; }
.lmt-interest-status-label{
	font-size:.76rem; font-weight:700; padding: 4px 10px; border-radius: 20px;
}
.lmt-interest-status-label.is-accepted{ background:#eaf5ee; color: var(--color-success, #3f7a52); }
.lmt-interest-status-label.is-declined{ background:#fbeaea; color:#a3342b; }
.lmt-interest-status-label.is-pending{ background: var(--color-cream, #FAF6F1); color: var(--color-text-light, #5F6D6A); }
.lmt-interest-list li{ flex-wrap:wrap; }

/* Small phones — tighter dashboard chrome below ~480px so nothing feels cramped. */
@media (max-width: 480px){
	.lmt-dashboard{ padding: 16px; }
	.lmt-dashboard-topbar{ flex-direction:column; align-items:flex-start; gap:12px; }
	.lmt-gallery-grid{ grid-template-columns: repeat(2, 1fr); }
	.lmt-chat-messages{ max-height: 320px; }
	.lmt-account-wrap{ padding: 20px; }
}
