/*
 * MES789 Sovereign Design Tokens
 * ที่มา: MES789 Sovereign Color Blueprint (PDF) — ล็อกค่าตรงตามเอกสารทุกจุด
 * ใช้ CSS Variables กลาง เพื่อให้โมดูลอื่นในอนาคต (ฟีด/เพื่อน/บทความ) เรียกใช้ชุดสีเดียวกันได้
 * แนะนำ: ก็อปบล็อก :root นี้ไปแปะใน "Additional CSS" ของธีม (Customizer) ได้เลย
 * จะได้ใช้ตัวแปรเดียวกันทั้งเว็บ ไม่ต้องเขียนเลขสีซ้ำในแต่ละโมดูล
 */
:root {
	/* พื้นหลัง/โครงสร้าง */
	--mes-bg-void:      #0C0C0E; /* Deep Void Black - พื้นหลังหลักทั้งเว็บ */
	--mes-bg-card:       #121212; /* Sovereign Charcoal - พื้นหลังการ์ด/เนื้อหา */
	--mes-bg-nav:         #1C1C1E; /* Charcoal Shield - แถบเมนู/ฟุตเตอร์ */
	--mes-border:          #2C2C2E; /* Obsidian Border - เส้นขอบ/เส้นคั่น */

	/* ตัวอักษร */
	--mes-text-body:     #E0E0E0; /* Muted Ivory - เนื้อหาหลัก */
	--mes-text-meta:      #8E8E93; /* Slate Platinum - วันที่/ผู้เขียน/metadata */

	/* สีแห่งอำนาจ (ใช้เฉพาะจุดสำคัญเท่านั้น) */
	--mes-gold:              #D4AF37; /* Imperial Gold - โลโก้/H1/ไอคอนหลัก */
	--mes-red:                #8B0000; /* Sacred Vermilion - ปุ่ม CTA/ลิงก์คลิก */

	/* ระยะห่างมาตรฐานตามคู่มือ */
	--mes-line-height:  1.7;
	--mes-letter-spacing-gold: 0.03em;
}

.mpc-profile-wrap {
	max-width: 900px;
	margin: 0 auto;
	background: var(--mes-bg-void);
	border-radius: 12px;
	overflow: hidden;
	box-shadow: 0 4px 24px rgba(0,0,0,.5);
	font-family: -apple-system, "Segoe UI", Roboto, sans-serif;
	position: relative;
	/* 🐞 [แก้ตามที่สั่ง — เนื้อหาทับแถบเมนูบน] ประวัติบรรทัดนี้ยาว:
	   ยุค WordPress เคยตั้ง 2147483000 กันแผงลอย/แชทของธีมมาบังคลิก แล้วลดเหลือ
	   var(--mes-z-guard, 800) — แต่ในระบบ v5 standalone "ไม่มีใครประกาศตัวแปรนี้"
	   (mes-zindex-scale.css ไม่ได้ย้ายตามมา และไม่มีธีมภายนอกให้กันอีกแล้ว)
	   ค่าจึงตกลงมาที่ 800 เสมอ — สูงกว่าแถบเมนูบน (topbar z=300) และเมนูตาราง
	   สี่เหลี่ยม (tb-apps z=400) ผลคือเลื่อนหน้าโปรไฟล์แล้ว "การ์ดไหลทับแถบเมนู"
	   ตรงตามอาการที่เจ้าของแจ้งเป๊ะ
	   ตอนนี้เหลือ z-index:1 พอ — isolation:isolate บรรทัดล่างสร้าง stacking
	   context ให้อยู่แล้ว ชั้นซ้อนภายในการ์ด (z 2/20) ยังทำงานเหมือนเดิมทุกอย่าง
	   ส่วนเครื่องมือเต็มจอ (100000/100060) เป็น position:fixed คนละบริบท ไม่กระทบ
	   ⚠️ กติกาชั้นซ้อนทั้งเว็บ: เนื้อหาในหน้า < 100 · แถบเมนูบน-ล่าง 300 ·
	   เมนูตาราง 400 · เมนูลากคลุมลิงก์ 500 · เครื่องมือเต็มจอ 9000 ขึ้นไป */
	z-index: 1;
	isolation: isolate; /* สร้าง stacking context ใหม่ กันชั้นในถูกทับจากภายนอกโดยไม่ตั้งใจ */
}
.mpc-cover {
	position: relative;
	/* [แก้ตามที่สั่ง ข้อ 3] ปกสูงขึ้น ให้ภาพกินพื้นที่จากบนสุดลงมาถึงใต้แถบชื่อ
	   ส่วนที่เป็นข้อมูลโปรไฟล์ด้านล่างจะทับบนปกแบบโปร่งแสง (ดู .mpc-header) */
	height: 380px;
	background-size: cover;
	background-position: center;
	background-color: var(--mes-bg-nav);
	background-image: linear-gradient(135deg, var(--mes-bg-nav), var(--mes-bg-void));
}
/* [เพิ่มโดย Claude] ไล่เฉดโปร่งแสงคาดด้านล่างรูปปก ตามที่ขอ (ข้อ 4) — ให้ปุ่ม/ข้อความด้านล่างอ่านง่ายขึ้น
   ไม่มีเส้นขอบล่างแบบเดิมแล้ว ให้รูปดูต่อเนื่องเต็มไม่มีรอยตัด */
.mpc-cover::after {
	content: '';
	position: absolute;
	left: 0; right: 0; bottom: 0;
	height: 90px;
	background: linear-gradient(to bottom, transparent, rgba(0,0,0,.55));
	pointer-events: none;
}
/* [แก้ตามที่สั่ง ข้อ 1] เหลือแค่ไอคอนกล้องกลม ๆ ไม่มีข้อความ "เปลี่ยนรูปปก"
   คนเข้าใจเองอยู่แล้วว่ากล้อง = เปลี่ยนรูป และไม่บังภาพปกด้วย
   [แก้ 22 ก.ย. 2569 — แม่บท #7] ย้ายจากมุมขวาบนกลับมามุมขวาล่าง ให้ตรงกับตำแหน่งเดิมของเว็บ
   และให้เหมือนกับปุ่มเดียวกันบนเพจ/กลุ่ม (กติกาตัวเลือกรูปชุดเดียว — ต้องหน้าตา/ตำแหน่งเดียวกันทุกที่) */
.mpc-change-cover-btn {
	position: absolute;
	right: 16px;
	bottom: 16px;
	top: auto;
	background: rgba(12,12,14,.6);
	color: var(--mes-gold);
	border: 1px solid rgba(212,175,55,.5);
	border-radius: 50%;
	width: 40px;
	height: 40px;
	display: flex;
	align-items: center;
	justify-content: center;
	font-size: 17px;
	padding: 0;
	cursor: pointer;
	letter-spacing: var(--mes-letter-spacing-gold);
	transition: background .15s ease;
	z-index: 20;
	pointer-events: auto;
}
.mpc-change-cover-btn:hover { background: rgba(212,175,55,.15); }

/* [เพิ่ม 22 ก.ย. 2569 — แม่บท #7] ↔ ปรับตำแหน่ง/ซูมรูปปกที่ตั้งไว้แล้ว (ไม่เปลี่ยนรูป) — ตัวเดียวกับที่เพจ/กลุ่มมี (.gh-pic-fit-cover)
   วางชิดซ้ายของปุ่มกล้อง (ห่าง 48px) อยู่แถวเดียวกันมุมขวาล่าง */
.mpc-cover-fit-btn {
	position: absolute;
	right: 64px;
	bottom: 16px;
	background: rgba(12,12,14,.6);
	color: var(--mes-gold);
	border: 1px solid rgba(212,175,55,.5);
	border-radius: 50%;
	width: 40px;
	height: 40px;
	display: flex;
	align-items: center;
	justify-content: center;
	font-size: 15px;
	padding: 0;
	cursor: pointer;
	z-index: 20;
	pointer-events: auto;
	list-style: none;
}
.mpc-cover-fit-btn::-webkit-details-marker { display: none; }
.mpc-cover-fit-panel {
	position: absolute;
	right: 16px;
	bottom: 62px;
	z-index: 21;
	background: var(--mes-bg-nav, #1a1414);
	border: 1px solid rgba(212,175,55,.35);
	border-radius: 10px;
	padding: 10px 12px;
	width: 200px;
	font-size: .78rem;
	color: var(--mes-text-dim, #a1938c);
}
.mpc-cover-fit-panel label { display: block; margin: 6px 0; }
.mpc-cover-fit-panel input[type=range] { width: 100%; }
.mpc-cover-fit-panel output { color: var(--mes-gold); font-weight: 600; }

/* [แก้ตามที่สั่ง ข้อ 3] แถบข้อมูลทับบนปกแบบโปร่งแสง ~88%
   เข้มพอให้ตัวอักษรอ่านชัด แต่ยังเห็นภาพปกจาง ๆ ทะลุด้านหลัง
   ทำให้รู้สึกว่าปกเต็มพื้นที่ต่อเนื่อง ไม่มีรอยตัดแข็ง ๆ */
.mpc-header {
	display: flex;
	align-items: flex-end;
	gap: 20px;
	padding: 0 24px 20px;
	margin-top: -110px;
	position: relative;
	flex-wrap: wrap;
	background: rgba(18, 18, 20, .88);
	backdrop-filter: blur(3px);
	-webkit-backdrop-filter: blur(3px);
}
.mpc-avatar-box { position: relative; flex-shrink: 0; width: 120px; height: 120px; }
.mpc-avatar-img {
	width: 120px !important;
	height: 120px !important;
	min-width: 120px;
	min-height: 120px;
	max-width: 120px;
	max-height: 120px;
	border-radius: 50% !important;
	border: 4px solid var(--mes-bg-void);
	object-fit: cover;
	background: var(--mes-bg-nav);
	display: block;
	aspect-ratio: 1 / 1;
}
.mpc-change-avatar-btn {
	position: absolute;
	right: 0;
	bottom: 0;
	background: var(--mes-gold);
	color: var(--mes-bg-void);
	border: none;
	border-radius: 50%;
	width: 32px;
	height: 32px;
	cursor: pointer;
	font-size: 14px;
	z-index: 20;
	pointer-events: auto;
}
.mpc-header-info { flex: 1; padding-bottom: 6px; padding-top: 16px; }
.mpc-name {
	color: var(--mes-gold);
	margin: 0 0 4px;
	font-size: 24px;
	letter-spacing: var(--mes-letter-spacing-gold);
}
.mpc-bio {
	color: var(--mes-text-body);
	font-size: 14px;
	line-height: var(--mes-line-height);
}
.mpc-edit-btn, .mpc-save-btn {
	/* 🐞 [แก้บั๊ก] เดิมไม่มีบรรทัดนี้ — เบราว์เซอร์ไม่ให้ <button> สืบทอด
	   font-family/font-size จากหน้าเว็บโดยอัตโนมัติ (พฤติกรรมมาตรฐานของ
	   form element ทุกตัว ต่างจาก <a> ที่สืบทอดปกติ) ปุ่มที่เป็น <button>
	   (เช่น "เพิ่มลงสตอรี่") จึงใช้ฟอนต์ระบบของเบราว์เซอร์ซึ่งมักเล็กกว่า
	   ปุ่มที่เป็น <a> (เช่น "แก้ไขโปรไฟล์") ที่ใช้ฟอนต์เว็บตามปกติ ทำให้
	   ปุ่มคู่กันสูง/กว้างไม่เท่ากันแม้ใช้คลาสเดียวกันเป๊ะ */
	font: inherit;
	background: var(--mes-red);
	color: var(--mes-text-body);
	border: 1px solid var(--mes-gold);
	border-radius: 6px;
	padding: 8px 18px;
	cursor: pointer;
	transition: filter .15s ease;
	position: relative;
	z-index: 20;
	pointer-events: auto;
}
.mpc-edit-btn:hover, .mpc-save-btn:hover { filter: brightness(1.15); }

.mpc-edit-form { padding: 16px 24px 20px; background: var(--mes-bg-card); }
.mpc-edit-form textarea {
	width: 100%;
	min-height: 80px;
	background: var(--mes-bg-void);
	color: var(--mes-text-body);
	border: 1px solid var(--mes-border);
	border-radius: 6px;
	padding: 10px;
	margin-bottom: 10px;
	line-height: var(--mes-line-height);
}
#mpc-save-status { color: var(--mes-text-meta); margin-left: 10px; font-size: 13px; }

.mpc-body {
	padding: 0 24px 24px;
	color: var(--mes-text-body);
	background: var(--mes-bg-card);
}

.mpc-mini-card { display: flex; align-items: center; gap: 8px; text-decoration: none; }
.mpc-mini-avatar { width: 32px; height: 32px; border-radius: 50%; object-fit: cover; border: 1px solid var(--mes-border); }
.mpc-mini-name { color: var(--mes-text-body); font-size: 13px; }

/* --- แท็บ ฟีด / คลังภาพ --- */
.mpc-tabs {
	display: flex;
	gap: 4px;
	padding: 0 24px;
	background: var(--mes-bg-card);
	border-top: 1px solid var(--mes-border);
}
.mpc-tab {
	padding: 12px 16px;
	color: var(--mes-text-meta);
	text-decoration: none;
	font-size: 14px;
	border-bottom: 2px solid transparent;
}
.mpc-tab.active { color: var(--mes-gold); border-bottom-color: var(--mes-gold); }
.mpc-tab:hover { color: var(--mes-text-body); }

/* --- โครง 2 คอลัมน์: กลาง (ฟีด) + ขวา (กล่องนิ่ง) --- */
.mpc-columns {
	display: flex;
	gap: 20px;
	padding: 20px 24px 24px;
	background: var(--mes-bg-card);
	align-items: flex-start;
}
.mpc-col-center { flex: 1; min-width: 0; }
.mpc-col-right { width: 260px; flex-shrink: 0; }

.mpc-section-title {
	color: var(--mes-gold);
	font-size: 15px;
	letter-spacing: var(--mes-letter-spacing-gold);
	margin: 0 0 12px;
	padding-bottom: 8px;
	border-bottom: 1px solid var(--mes-border);
}
.mpc-empty-state { color: var(--mes-text-meta); font-size: 14px; }
.mpc-empty-state.mpc-small { font-size: 12px; }

/* --- กล่องลิงก์ภายนอก (คอลัมน์ขวา) --- */
.mpc-links-box {
	background: var(--mes-bg-void);
	border: 1px solid var(--mes-border);
	border-radius: 8px;
	padding: 16px;
}
.mpc-links-list { list-style: none; margin: 0; padding: 0; }
.mpc-links-list li { margin-bottom: 8px; }
.mpc-links-list a { color: var(--mes-text-body); text-decoration: none; font-size: 13px; }
.mpc-links-list a:hover { color: var(--mes-gold); }

/* --- ฟอร์มแก้ไขลิงก์ --- */
.mpc-links-editor { display: flex; flex-direction: column; gap: 8px; margin-bottom: 12px; }
.mpc-link-row { display: flex; gap: 8px; }
.mpc-link-row input {
	background: var(--mes-bg-void);
	color: var(--mes-text-body);
	border: 1px solid var(--mes-border);
	border-radius: 6px;
	padding: 8px;
	font-size: 13px;
}
.mpc-link-label { width: 35%; }
.mpc-link-url { flex: 1; }

/* --- การ์ดสตอรี่/โพสต์ในฟีด (จาก csb_posts) --- */
.mpc-stories-feed { display: flex; flex-direction: column; gap: 14px; }
.mpc-story-card {
	display: flex;
	gap: 12px;
	background: var(--mes-bg-void);
	border: 1px solid var(--mes-border);
	border-radius: 8px;
	padding: 14px;
	text-decoration: none;
	transition: border-color .15s ease;
}
.mpc-story-card:hover { border-color: var(--mes-gold); }
.mpc-story-thumb { width: 84px; height: 84px; object-fit: cover; border-radius: 6px; flex-shrink: 0; }
.mpc-story-title { color: var(--mes-gold); font-size: 15px; margin-bottom: 4px; }
.mpc-story-excerpt { color: var(--mes-text-body); font-size: 13px; line-height: var(--mes-line-height); margin-bottom: 6px; }
.mpc-story-meta { color: var(--mes-text-meta); font-size: 12px; display: flex; gap: 10px; }

/* --- คลังภาพ (Gallery) --- */
.mpc-gallery-grid {
	display: grid;
	grid-template-columns: repeat(auto-fill, minmax(140px, 1fr));
	gap: 6px;
}
.mpc-gallery-item img { width: 100%; height: 140px; object-fit: cover; border-radius: 4px; display: block; }

@media (max-width: 700px) {
	.mpc-columns { flex-direction: column; }
	.mpc-col-right { width: 100%; }
}

/* --- กล่องโพสต์สถานะด่วนในหน้าโปรไฟล์ตัวเอง --- */
.mpc-composer {
	background: var(--mes-bg-card);
	border: 1px solid var(--mes-border);
	border-radius: 8px;
	padding: 12px;
	margin-bottom: 16px;
}
.mpc-composer textarea {
	width: 100%;
	min-height: 60px;
	background: var(--mes-bg-void);
	color: var(--mes-text-body);
	border: 1px solid var(--mes-border);
	border-radius: 6px;
	padding: 10px;
	margin-bottom: 8px;
}
#mpc-composer-status { margin-left: 10px; color: var(--mes-text-meta); font-size: 12px; }

/* --- ป้ายบอกระดับการมองเห็นโปรไฟล์ --- */
.mpc-visibility-badge {
	display: inline-block;
	font-size: 12px;
	color: var(--mes-text-meta);
	background: var(--mes-bg-void);
	border: 1px solid var(--mes-border);
	border-radius: 12px;
	padding: 2px 10px;
	margin: 4px 0 6px;
}
.mpc-field-label { display: block; color: var(--mes-text-meta); font-size: 12px; margin: 10px 0 4px; }
.mpc-visibility-select {
	width: 100%;
	background: var(--mes-bg-void);
	color: var(--mes-text-body);
	border: 1px solid var(--mes-border);
	border-radius: 6px;
	padding: 8px;
	margin-bottom: 8px;
}

/* --- แถวเครื่องมือสำรองใต้กล่องโพสต์สถานะ --- */
.mpc-composer-tools-row {
	display: flex;
	gap: 8px;
	min-height: 4px;
	margin-bottom: 8px;
}
.mpc-composer-tools-row:empty { margin-bottom: 0; }

/* --- สตอรี่ (24 ชม.) --- */
.mpc-small-note { color: var(--mes-text-meta); font-size: 12px; margin: 2px 0 0; }
.mpc-story-create {
	display: flex; align-items: center; gap: 8px; flex-wrap: wrap;
	background: var(--mes-bg-void); border: 1px dashed var(--mes-border);
	border-radius: 8px; padding: 12px; margin-bottom: 16px;
}
.mpc-story-caption-input {
	flex: 1; min-width: 160px; background: var(--mes-bg-card); color: var(--mes-text-body);
	border: 1px solid var(--mes-border); border-radius: 6px; padding: 8px;
}
.mpc-story-grid {
	display: grid;
	grid-template-columns: repeat(auto-fill, minmax(150px, 1fr));
	gap: 12px;
}
.mpc-story-item {
	position: relative;
	background: var(--mes-bg-void);
	border: 1px solid var(--mes-border);
	border-radius: 10px;
	overflow: hidden;
}
.mpc-story-item img { width: 100%; height: 220px; object-fit: cover; display: block; }
.mpc-story-caption { padding: 6px 8px; color: var(--mes-text-body); font-size: 12px; }
.mpc-story-actions { display: flex; justify-content: space-between; align-items: center; padding: 6px 8px; gap: 6px; }
.mpc-story-save-btn, .mpc-story-delete-btn {
	background: var(--mes-bg-card); color: var(--mes-text-body);
	border: 1px solid var(--mes-border); border-radius: 6px;
	font-size: 11px; padding: 4px 8px; cursor: pointer;
}
.mpc-story-saved-badge { color: var(--mes-gold); font-size: 11px; }

/* --- หัวข้อ "โพสต์" สีทองเหนือกล่องสถานะ --- */
.mpc-composer-heading { color: var(--mes-gold); font-size: 15px; margin: 0 0 8px; letter-spacing: .03em; }

/* --- Community: แถบเลื่อนแนวนอนรวมคนแนะนำ/หัวข้อบอร์ด/บทความ --- */
.mpc-community-strip { margin: 16px 0; }
.mpc-community-scroll {
	display: flex;
	gap: 10px;
	overflow-x: auto;
	padding-bottom: 6px;
	scrollbar-width: thin;
}
.mpc-community-card {
	flex: 0 0 150px;
	background: var(--mes-bg-void);
	border: 1px solid var(--mes-border);
	border-radius: 10px;
	overflow: hidden;
	text-decoration: none;
	display: flex;
	flex-direction: column;
}
.mpc-community-card:hover { border-color: var(--mes-gold); }
.mpc-community-img {
	width: 100%;
	aspect-ratio: 4 / 5;
	background-size: cover;
	background-position: center;
	background-color: var(--mes-bg-nav);
}
.mpc-community-card.mpc-no-image::before {
	content: '';
	display: block;
	width: 100%;
	aspect-ratio: 4 / 5;
	background: linear-gradient(135deg, #3a1414, #1c1c1e);
}
.mpc-community-person { align-items: center; text-align: center; padding: 12px 8px; }
.mpc-community-person img { width: 64px !important; height: 64px !important; min-width: 64px; min-height: 64px; border-radius: 50% !important; object-fit: cover; aspect-ratio: 1/1; margin: 0 auto 8px; }
.mpc-community-label { color: var(--mes-text-body); font-size: 12px; line-height: 1.4; padding: 8px 10px 2px; }
.mpc-community-tag { color: var(--mes-gold); font-size: 10px; padding: 0 10px 10px; }

/* --- Pins --- */
.mpc-pins-list { list-style: none; margin: 0; padding: 0; }
.mpc-pins-list li { color: var(--mes-text-body); font-size: 13px; margin-bottom: 6px; }

/* --- Friends preview บนหน้าโปรไฟล์หลัก --- */
.mpc-friends-preview-grid {
	display: grid;
	grid-template-columns: repeat(auto-fill, minmax(70px, 1fr));
	gap: 8px;
	margin: 8px 0;
}
.mpc-friends-preview-grid a { text-decoration: none; text-align: center; }
.mpc-friends-preview-grid img { width: 56px; height: 56px; border-radius: 50%; object-fit: cover; }
.mpc-friends-preview-grid span { display: block; color: var(--mes-text-meta); font-size: 11px; margin-top: 4px; }

/* --- ปุ่มบันทึก/เลิกบันทึกสตอรี่แบบข้ามคน --- */
.mpc-story-bookmark-btn, .mpc-story-unbookmark-btn, .mpc-story-link-btn {
	background: var(--mes-bg-card); color: var(--mes-text-body);
	border: 1px solid var(--mes-border); border-radius: 6px;
	font-size: 11px; padding: 4px 8px; cursor: pointer;
}
.mpc-story-actions { flex-wrap: wrap; }

/* --- [แก้ไขโดย Claude] โครงบล็อกแนวตั้งเต็มความกว้าง แทนที่ 2 คอลัมน์ขนานเดิม --- */
.mpc-body-blocks {
	display: flex;
	flex-direction: column;
	gap: 16px;
	padding: 16px 24px 24px;
	background: var(--mes-bg-card);
}
.mpc-block {
	background: var(--mes-bg-void);
	border: 1px solid var(--mes-border);
	border-radius: 10px;
	padding: 16px;
}
.mpc-actions-row { display: flex; gap: 8px; background: transparent; border: none; padding: 0; }

/* --- ข้อ 6: การ์ด Pin (แทนที่ list ธรรมดา) --- */
.mpc-pins-grid {
	display: grid;
	grid-template-columns: repeat(auto-fill, minmax(160px, 1fr));
	gap: 10px;
}
.mpc-pin-card {
	background: var(--mes-bg-card);
	border: 1px solid var(--mes-border);
	border-radius: 8px;
	padding: 12px;
	display: flex;
	align-items: center;
	gap: 8px;
}
.mpc-pin-icon { font-size: 18px; }
.mpc-pin-text { color: var(--mes-text-body); font-size: 13px; }

/* --- ข้อ 4: ดัชนีเรื่องราวที่เขียน --- */
.mpc-written-works-list { list-style: none; margin: 0; padding: 0; }
.mpc-written-works-list li {
	display: flex; justify-content: space-between; gap: 10px;
	padding: 8px 0; border-bottom: 1px solid var(--mes-border);
}
.mpc-written-works-list li:last-child { border-bottom: none; }
.mpc-written-works-list a { color: var(--mes-gold); text-decoration: none; font-size: 13px; }

/* --- ปุ่มเครื่องมือจากทะเบียนกลาง (mes789_register_composer_tool) --- */
.mpc-tool-btn {
	background: var(--mes-bg-card);
	color: var(--mes-text-body);
	border: 1px solid var(--mes-border);
	border-radius: 6px;
	padding: 6px 10px;
	font-size: 14px;
	cursor: pointer;
}
.mpc-tool-btn:hover { border-color: var(--mes-gold); }

/* --- ป้ายยศ/คะแนน --- */
.mpc-rank-badge {
	display: inline-flex; align-items: center; gap: 6px;
	background: linear-gradient(90deg, rgba(212,175,55,.15), transparent);
	border: 1px solid var(--mes-gold, #D4AF37);
	border-radius: 14px; padding: 3px 12px; margin: 4px 0 6px;
	font-size: 12px; color: var(--mes-gold, #D4AF37);
}
.mpc-rank-icon { font-size: 14px; }
.mpc-rank-name { font-weight: 600; }
.mpc-rank-points { color: var(--mes-text-meta, #8E8E93); }
.mpc-rank-progress {
	width: 180px; height: 6px; background: var(--mes-bg-void, #0C0C0E);
	border-radius: 3px; overflow: hidden; margin: 2px 0;
}
.mpc-rank-progress-bar { height: 100%; background: var(--mes-gold, #D4AF37); }
.mpc-rank-next { font-size: 11px; color: var(--mes-text-meta, #8E8E93); margin-bottom: 6px; }

.mpc-rank-icon-img { width: 18px; height: 18px; border-radius: 4px; object-fit: cover; vertical-align: middle; }

/* --- เปลี่ยนชื่อ @ / ส่งคำขอเปลี่ยนชื่อ --- */
.mpc-slug-section { margin: 12px 0; padding: 10px; background: var(--mes-bg-void); border: 1px solid var(--mes-border); border-radius: 8px; }
.mpc-slug-section input, .mpc-slug-section textarea { width: 100%; margin-top: 6px; background: var(--mes-bg-card); color: var(--mes-text-body); border: 1px solid var(--mes-border); border-radius: 6px; padding: 8px; }

/* --- ป้ายยศวงกลมมุมล่างซ้ายของรูปโปรไฟล์ (คนที่เปลี่ยนรูปเองแล้ว) --- */
.mpc-rank-avatar-badge {
	position: absolute;
	left: -4px;
	bottom: -4px;
	width: 34px !important;
	height: 34px !important;
	border-radius: 50% !important;
	border: 2px solid var(--mes-bg-card, #121212);
	object-fit: cover;
	background: var(--mes-bg-void, #0C0C0E);
	z-index: 2;
}
.mpc-rank-avatar-badge-icon {
	display: flex; align-items: center; justify-content: center;
	font-size: 16px;
}

/* --- [เพิ่มโดย Claude] เครื่องมือแก้ไขรูปปกเต็มรูปแบบ --- */
.mpc-editor-modal {
	position: fixed; inset: 0; background: rgba(0,0,0,.75);
	z-index: var(--mes-z-tool-panel, 100000); display: flex; align-items: center; justify-content: center;
	padding: 16px;
}
.mpc-editor-box {
	background: var(--mes-bg-card, #121212);
	border: 1px solid var(--mes-gold, #D4AF37);
	border-radius: 10px;
	max-width: 880px; width: 100%;
	padding: 16px;
	max-height: 92vh;
	overflow-y: auto;
}
.mpc-editor-header { display: flex; justify-content: space-between; align-items: center; margin-bottom: 12px; color: var(--mes-gold, #D4AF37); font-weight: 700; font-size: 16px; }
.mpc-editor-close { background: none; border: none; color: var(--mes-text-meta, #8E8E93); font-size: 22px; cursor: pointer; line-height: 1; }

.mpc-editor-canvas-wrap { position: relative; width: 100%; max-width: 820px; margin: 0 auto; aspect-ratio: 820 / 260; touch-action: none; }
#mpc-editor-canvas { width: 100%; height: 100%; border-radius: 6px; cursor: grab; display: block; background: #000; }
#mpc-editor-canvas:active { cursor: grabbing; }
#mpc-editor-text-layer { position: absolute; inset: 0; pointer-events: none; }
.mpc-editor-text-item {
	position: absolute; font-weight: 700; font-size: 24px; cursor: move;
	pointer-events: auto; user-select: none; white-space: nowrap;
	text-shadow: 0 1px 4px rgba(0,0,0,.6);
}

.mpc-editor-hint { color: var(--mes-text-meta, #8E8E93); font-size: 11px; text-align: center; margin: 6px 0; }
.mpc-editor-row { display: flex; align-items: center; gap: 8px; margin: 10px 0; flex-wrap: wrap; }
.mpc-editor-row label { color: var(--mes-text-meta, #8E8E93); font-size: 13px; min-width: 50px; }
.mpc-editor-row input[type=range] { flex: 1; }
.mpc-editor-row input[type=text] {
	flex: 1; min-width: 140px; background: var(--mes-bg-void, #0C0C0E); color: var(--mes-text-body, #E0E0E0);
	border: 1px solid var(--mes-border, #2C2C2E); border-radius: 6px; padding: 8px;
}
.mpc-editor-filters { justify-content: center; }
.mpc-editor-filter-btn {
	background: var(--mes-bg-void, #0C0C0E); color: var(--mes-text-body, #E0E0E0);
	border: 1px solid var(--mes-border, #2C2C2E); border-radius: 16px; padding: 5px 12px; font-size: 12px; cursor: pointer;
}
.mpc-editor-filter-btn.active { border-color: var(--mes-gold, #D4AF37); color: var(--mes-gold, #D4AF37); }
.mpc-editor-actions { display: flex; justify-content: flex-end; align-items: center; gap: 10px; margin-top: 12px; }

/* [เพิ่มโดย Claude ตามสเปกข้อ 6] หน้าโปรไฟล์ที่ถูกล็อก (private/members) — คนไม่มีสิทธิ์เห็นแค่ส่วนนี้ */
.mpc-profile-locked .mpc-locked-notice {
	max-width: 480px;
	margin: 24px auto;
	text-align: center;
	background: var(--mes-card-bg, #1c1c1c);
	border: 1px solid var(--mes-border, #2c2c2c);
	border-radius: 12px;
	padding: 20px;
}
.mpc-profile-locked .mpc-locked-notice p { margin: 0 0 12px; }

/* ===========================================================================
   [เพิ่มใหม่] กล่องเลือกที่มาของรูปปก/รูปโปรไฟล์ (อัปโหลด หรือ จากอัลบั้ม)
   =========================================================================== */
.picsrc-overlay {
	position: fixed;
	inset: 0;
	z-index: 100060;
	display: flex;
	align-items: flex-end;      /* ชิดล่าง กันแป้นพิมพ์มือถือบัง (บทเรียนเดิม) */
	justify-content: center;
	background: rgba(0, 0, 0, .6);
}
.picsrc-overlay[hidden] { display: none; }

.picsrc-sheet {
	width: 100%;
	max-width: 520px;
	max-height: 80vh;
	overflow-y: auto;
	padding: 14px;
	border-radius: 16px 16px 0 0;
	background: var(--mes-bg-card, #141416);
	border: 1px solid var(--mes-line, #2a2a2e);
	border-bottom: none;
}
.picsrc-head {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 10px;
	margin-bottom: 14px;
	font-weight: 700;
	color: var(--mes-gold, #d4af37);
}

.picsrc-choice { display: flex; flex-direction: column; gap: 10px; }
.picsrc-opt {
	display: flex;
	align-items: center;
	gap: 12px;
	padding: 16px;
	border-radius: 12px;
	background: var(--mes-bg-nav, #1c1c20);
	border: 1px solid var(--mes-line, #2a2a2e);
	color: var(--mes-text, #ece5e0);
	cursor: pointer;
	font-family: inherit;
	font-size: .92rem;
	text-align: left;
}
.picsrc-opt:hover { border-color: var(--mes-gold, #d4af37); }
.picsrc-opt-ico { font-size: 1.4rem; }

.picsrc-grid {
	display: grid;
	grid-template-columns: repeat(auto-fill, minmax(96px, 1fr));
	gap: 6px;
	margin-top: 10px;
}
.picsrc-cell {
	aspect-ratio: 1 / 1;
	padding: 0;
	border: 1px solid var(--mes-line, #2a2a2e);
	border-radius: 8px;
	overflow: hidden;
	background: #101013;
	cursor: pointer;
}
.picsrc-cell:hover { border-color: var(--mes-gold, #d4af37); }
.picsrc-cell img { width: 100%; height: 100%; object-fit: cover; display: block; }

/* ===========================================================================
   [เพิ่มใหม่] รูปโปรไฟล์เคลื่อนไหว — เลือกหลายรูป (5-9 ใบ) จากอัลบั้มเดิม
   ใช้กริดเดียวกับ .picsrc-grid/.picsrc-cell ข้างบนทุกประการ แค่เพิ่มสถานะ
   "เลือกแล้ว" (.selected) พร้อมเลขลำดับ ไม่ใช้กริดใหม่ ไม่ซ้ำโค้ด
   =========================================================================== */
.picsrc-cell.selected {
	border-color: var(--mes-gold, #d4af37);
	border-width: 2px;
	box-shadow: inset 0 0 0 2px rgba(212, 175, 55, .35);
}
.picsrc-cell-order {
	position: absolute;
	top: 4px;
	left: 4px;
	min-width: 20px;
	height: 20px;
	padding: 0 5px;
	border-radius: 10px;
	background: var(--mes-gold, #d4af37);
	color: #1a1a1a;
	font-size: .72rem;
	font-weight: 800;
	display: flex;
	align-items: center;
	justify-content: center;
}
/* .picsrc-cell ต้อง position:relative ถึงจะวางเลขลำดับซ้อนได้ถูกมุม */
.picsrc-cell { position: relative; }

/* แถบล่างตอนเลือกหลายรูป — ชิดขอบล่างของแผ่นเดิม (บทเรียนเดิม: ห้ามลอยกึ่งกลางจอ) */
.picsrc-multi-footer {
	position: sticky;
	bottom: 0;
	margin: 10px -14px -14px;
	padding: 10px 14px;
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 10px;
	background: var(--mes-bg-card, #141416);
	border-top: 1px solid var(--mes-line, #2a2a2e);
	font-size: .85rem;
	color: var(--mes-text-dim, #9a938d);
}
.picsrc-multi-footer button[disabled] { opacity: .45; cursor: not-allowed; }

/* ===========================================================================
   [เพิ่มใหม่] เอฟเฟกต์รูปโปรไฟล์เคลื่อนไหว — สลับ src แล้วเฟดเบา ๆ (ไม่ใช้
   layer ซ้อน ไม่ใช้ canvas เบาที่สุดเท่าที่ทำได้ตามที่เจ้าของกำชับ)
   การเล่น/หยุดคุมด้วย viewport-fx.js ตัวเดิม (ดู avatar-anim.js) ไฟล์นี้
   แค่ใส่ transition ไว้รอเฉย ๆ
   =========================================================================== */
.mpc-avatar-anim { transition: opacity .35s ease; }
.mpc-avatar-anim.frame-swapping { opacity: 0; }

/* ==========================================================================
   🐞 [แก้บั๊ก "อัปรูปจากคลังภาพมือถือไม่ได้"]
   --------------------------------------------------------------------------
   เดิมช่องเลือกไฟล์ใช้แอตทริบิวต์ hidden ซึ่งเท่ากับ display:none

   ⚠️ เบราว์เซอร์มือถือหลายตัว (Safari iOS และ Android บางรุ่น) **ปฏิเสธการ
   เปิดหน้าต่างเลือกไฟล์** ถ้า <input type="file"> ถูกซ่อนด้วย display:none
   เป็นข้อจำกัดด้านความปลอดภัยของเบราว์เซอร์เอง ไม่ใช่บั๊กของเว็บ
   (กันเว็บแอบเปิดหน้าต่างเลือกไฟล์โดยผู้ใช้ไม่เห็น)

   บนคอมพิวเตอร์ไม่มีปัญหานี้ จึงดูเหมือนใช้ได้ — แต่บนมือถือกดแล้วเงียบสนิท
   ตรงกับอาการที่รายงานมา

   แก้: ซ่อนด้วยวิธีที่ยัง "ถูกวาดอยู่จริง" ในหน้าเว็บ แค่มองไม่เห็น
   opacity:0 + ขนาด 1px + ไม่รับการกด = ผู้ใช้ไม่เห็นและกดโดนไม่ได้
   แต่เบราว์เซอร์ยังยอมให้ .click() เปิดหน้าต่างเลือกไฟล์ได้ตามปกติ
   ========================================================================== */
.mpc-file-hidden {
    position: absolute;
    width: 1px;
    height: 1px;
    padding: 0;
    margin: -1px;
    overflow: hidden;
    clip: rect(0, 0, 0, 0);
    white-space: nowrap;
    border: 0;
    opacity: 0;
    pointer-events: none;
}

/* ==========================================================================
   ⭐ [เพิ่มใหม่] เวทีครอบ/ซูม/เลือกมุม สำหรับรูปโปรไฟล์และรูปปก
   --------------------------------------------------------------------------
   ขนาดกรอบ "ล็อกตามชนิด" ตามที่เจ้าของกำหนด — ผู้ใช้ปรับได้แค่ซูมกับมุม
   จึงไม่มีทางได้รูปสัดส่วนเพี้ยนไปจากที่ระบบต้องการ
   ========================================================================== */
.picsrc-warpbox { padding: 10px 0; }
.picsrc-warpbox .input { width: 100%; margin-bottom: 8px; }
.picsrc-hint { font-size: .74rem; color: var(--mes-text-mute, #9a938d); margin: 6px 0 0; }

.picsrc-storygrid {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(80px, 1fr));
    gap: 6px;
    max-height: 45vh;
    overflow-y: auto;
    padding: 8px 0;
}
.picsrc-storycell {
    padding: 0;
    border: 2px solid transparent;
    border-radius: 8px;
    overflow: hidden;
    background: #1c1c20;
    cursor: pointer;
    aspect-ratio: 9/16;
}
.picsrc-storycell:hover { border-color: var(--mes-gold, #d4af37); }
.picsrc-storycell img { width: 100%; height: 100%; object-fit: cover; display: block; }
.picsrc-loading { padding: 20px; text-align: center; color: var(--mes-text-mute, #9a938d); font-size: .82rem; }

/* ---- เวทีครอบ ---- */
.picsrc-cropstage { padding: 10px 0; }
.picsrc-crop-frame {
    position: relative;
    overflow: hidden;
    margin: 0 auto 12px;
    background: #000;
    border: 2px solid var(--mes-gold, #d4af37);
}
/* รูปโปรไฟล์ = วงกลม 1:1 ตรงกับที่แสดงจริง */
.picsrc-crop-frame.is-avatar {
    width: 200px; height: 200px;
    border-radius: 50%;
}
/* รูปปก = แนวนอน ตรงกับสัดส่วนแถบปกจริง */
.picsrc-crop-frame.is-cover {
    width: 100%; max-width: 320px;
    aspect-ratio: 16/9;
    border-radius: 10px;
}
.picsrc-crop-frame img {
    width: 100%; height: 100%;
    object-fit: cover;
    display: block;
    transform-origin: center center;
}

.picsrc-slider {
    display: flex;
    align-items: center;
    gap: 8px;
    font-size: .78rem;
    color: var(--mes-text-mute, #9a938d);
    margin-bottom: 8px;
}
.picsrc-slider input[type="range"] { flex: 1; accent-color: var(--mes-gold, #d4af37); }
.picsrc-slider span { min-width: 3em; text-align: right; font-weight: 700; color: var(--gold-soft, #f0d98a); }

.picsrc-crop-actions { display: flex; gap: 8px; margin-top: 10px; }
.picsrc-crop-actions .blk-btn { flex: 1; }

/* ===========================================================================
   📅 [รอบสร้าง 1A] กล่องสถานะซีซั่น + บัตรลา — โชว์เฉพาะเจ้าของโปรไฟล์
   =========================================================================== */
.mes-season-box { margin: 12px 0 4px; padding: 14px 16px; border-radius: 14px;
  background: linear-gradient(135deg, rgba(96,165,250,.10), rgba(167,139,250,.10));
  border: 1px solid rgba(148,163,184,.25); }
.mes-season-head { display: flex; justify-content: space-between; align-items: center;
  font-weight: 700; margin-bottom: 10px; gap: 8px; flex-wrap: wrap; }
.mes-season-tier { font-size: .85em; padding: 2px 10px; border-radius: 999px;
  background: rgba(96,165,250,.18); }
.mes-season-grid { display: grid; grid-template-columns: repeat(4, 1fr); gap: 8px; }
.mes-season-cell { text-align: center; background: rgba(15,23,42,.25);
  border-radius: 10px; padding: 8px 4px; }
.mes-season-cell b { display: block; font-size: 1.05em; }
.mes-season-cell small { opacity: .75; font-size: .72em; }
.mes-season-note { margin: 10px 0 0; font-size: .85em; opacity: .9; }
.mes-season-warn { margin: 10px 0 0; font-size: .85em; padding: 8px 10px;
  border-radius: 10px; background: rgba(251,191,36,.14);
  border: 1px solid rgba(251,191,36,.35); }
.mes-leave-toggle, .mes-leave-submit { margin-top: 10px; border: 0; cursor: pointer;
  padding: 8px 14px; border-radius: 10px; font-weight: 700;
  background: rgba(96,165,250,.25); color: inherit; }
.mes-leave-form { margin-top: 8px; display: flex; flex-direction: column; gap: 6px; }
.mes-leave-form input[type="date"] { padding: 6px 8px; border-radius: 8px;
  border: 1px solid rgba(148,163,184,.35); background: rgba(15,23,42,.3); color: inherit; }
@media (max-width: 560px) { .mes-season-grid { grid-template-columns: repeat(2, 1fr); } }
