@charset "UTF-8";

html { font-size: 16px; }
html, body { min-height: 100%; }
body, h1, h2, h3, p { margin: 0; }
button, input, textarea, select { appearance: none; }
img { display: block; max-width: 100%; }

/* =========================================================
	CMS admin prototype
	Public pages are unaffected because every rule is scoped.
========================================================= */
.cms_admin_page {
	--cms_navy: #17233c;
	--cms_navy_deep: #10192c;
	--cms_blue: #4d76e8;
	--cms_blue_soft: #eef3ff;
	--cms_text: #202a3b;
	--cms_muted: #7c879b;
	--cms_line: #e7eaf0;
	--cms_surface: #ffffff;
	--cms_bg: #f4f6fa;
	min-height: 100vh;
	margin: 0;
	overflow-x: hidden;
	color: var(--cms_text);
	font-family: "Noto Sans JP", "Hiragino Sans", "Yu Gothic", sans-serif;
	font-size: 16px;
	line-height: 1.55;
	letter-spacing: 0;
	background: var(--cms_bg);
}

.cms_admin_page *,
.cms_admin_page *::before,
.cms_admin_page *::after { box-sizing: border-box; }
.cms_admin_page input,
.cms_admin_page textarea,
.cms_admin_page select { font: inherit; }
.cms_admin_page button { color: inherit; font-family: inherit; line-height: inherit; letter-spacing: inherit; }
.cms_admin_page [hidden] { display: none !important; }

.cms_admin_shell { min-height: 100vh; }
.cms_mobile_header { display: none; }
.cms_admin_sidebar {
	position: fixed;
	inset: 0 auto 0 0;
	z-index: 40;
	display: flex;
	flex-direction: column;
	width: 264px;
	overflow-y: auto;
	overscroll-behavior: contain;
	scrollbar-width: none;
	padding: 16px 14px 14px;
	color: #fff;
	background: var(--cms_navy);
}
.cms_admin_sidebar::-webkit-scrollbar { display: none; }
.cms_brand {
	display: flex;
	align-items: center;
	gap: 10px;
	min-height: 42px;
	padding: 0 8px 12px;
	border-bottom: 1px solid rgba(255,255,255,.1);
}
.cms_brand_icon {
	display: grid;
	flex: 0 0 42px;
	width: 42px;
	height: 42px;
	place-items: center;
	overflow: hidden;
	color: #fff;
	font-size: .82rem;
	font-weight: 700;
	text-decoration: none;
	border: 1px solid rgba(255,255,255,.18);
	border-radius: 50%;
	background: rgba(255,255,255,.1);
	transition: border-color .2s, background .2s, transform .2s;
}
.cms_brand_icon:hover { border-color: rgba(255,255,255,.45); background: rgba(255,255,255,.16); transform: translateY(-1px); }
.cms_brand_icon:focus-visible { outline: 2px solid #fff; outline-offset: 2px; }
.cms_brand_icon img { width: 100%; height: 100%; object-fit: cover; }
.cms_brand > div { display: flex; min-width: 0; flex-direction: column; }
.cms_brand strong { font-size: 1.05rem; letter-spacing: .12em; }
.cms_brand small { color: #9ca8bd; font-size: .65rem; letter-spacing: .06em; }
.cms_nav { margin-top: 12px; }
.cms_nav_label {
	margin: 0 10px 4px;
	color: #78859c;
	font-size: .68rem;
	font-weight: 700;
	letter-spacing: .12em;
}
.cms_nav_item {
	position: relative;
	display: grid;
	grid-template-columns: 25px 1fr auto;
	align-items: center;
	gap: 12px;
	width: 100%;
	min-height: 42px;
	margin: 1px 0;
	padding: 0 11px;
	color: #aeb8ca;
	font-size: .88rem;
	font-weight: 600;
	text-align: left;
	border: 0;
	border-radius: 10px;
	background: transparent;
	cursor: pointer;
	transition: background .2s, color .2s;
}
.cms_nav_item::before {
	position: absolute;
	top: 10px;
	bottom: 10px;
	left: -14px;
	width: 3px;
	border-radius: 0 4px 4px 0;
	background: #fff;
	content: "";
	opacity: 0;
}
.cms_nav_item:hover { color: #fff; background: rgba(255,255,255,.06); }
.cms_nav_item.is_active { color: #fff; background: rgba(91,126,229,.24); }
.cms_nav_item.is_active::before { opacity: 1; }
.cms_nav_item .material-icons-outlined { font-size: 21px; }
.cms_nav_item em {
	min-width: 23px;
	padding: 2px 6px;
	color: #bfc9ff;
	font-size: .67rem;
	font-style: normal;
	text-align: center;
	border-radius: 20px;
	background: rgba(99,130,230,.22);
}
.cms_sidebar_bottom { margin-top: auto; }
.cms_store_switch { display: flex; align-items: center; justify-content: center; gap: 8px; width: 100%; min-height: 36px; margin-bottom: 5px; color: #c3cee0; font-size: .7rem; font-weight: 700; border: 1px solid rgba(255,255,255,.12); border-radius: 9px; background: rgba(255,255,255,.04); cursor: pointer; }
.cms_store_switch:hover { color: #fff; background: rgba(255,255,255,.09); }
.cms_store_switch .material-icons-outlined { font-size: 17px; }
.cms_account {
	position: relative;
	display: grid;
	grid-template-columns: 36px 1fr 20px;
	align-items: center;
	gap: 10px;
	padding: 10px 6px 0;
	border-top: 1px solid rgba(255,255,255,.1);
}
.cms_account_avatar,
.cms_mobile_avatar {
	display: grid;
	place-items: center;
	width: 36px;
	height: 36px;
	overflow: hidden;
	padding: 0;
	color: #fff;
	font-size: .75rem;
	font-weight: 700;
	border: 0;
	border-radius: 50%;
	background: linear-gradient(135deg,#6a86e8,#9b6de0);
}
.cms_account_avatar img,
.cms_mobile_avatar img,
.cms_admin_avatar_preview img { width: 100%; height: 100%; object-fit: cover; border-radius: 50%; }
.cms_account div { display: flex; flex-direction: column; }
.cms_account strong { font-size: .75rem; }
.cms_account small { color: #8390a7; font-size: .63rem; }
.cms_account_menu_button { display: grid; place-items: center; width: 30px; height: 34px; padding: 0; color: #78859b; border: 0; border-radius: 7px; background: transparent; cursor: pointer; }
.cms_account_menu_button:hover,
.cms_account_menu_button[aria-expanded="true"] { color: #fff; background: rgba(255,255,255,.1); }
.cms_account_menu_button .material-icons-outlined { font-size: 19px; }
.cms_account_menu { position: absolute; right: 0; bottom: 56px; z-index: 5; width: 218px; overflow: hidden; padding: 6px; border: 1px solid #dfe4ed; border-radius: 11px; background: #fff; box-shadow: 0 14px 35px rgba(6,14,30,.28); }
.cms_account_menu[hidden] { display: none; }
.cms_account_menu button { display: flex; align-items: center; gap: 9px; width: 100%; min-height: 42px; padding: 0 11px; color: #344057; font-size: .7rem; font-weight: 700; text-align: left; border: 0; border-radius: 7px; background: transparent; cursor: pointer; }
.cms_account_menu button:hover { color: #365cc0; background: #f1f5ff; }
.cms_account_menu button.is_logout { color: #b85764; border-top: 1px solid #edf0f4; border-radius: 0 0 7px 7px; }
.cms_account_menu button.is_logout:hover { background: #fff1f3; }
.cms_account_menu .material-icons-outlined { font-size: 18px; }
.cms_sidebar_scrim { display: none; }

.cms_admin_main {
	min-height: 100vh;
	margin-left: 264px;
	padding: 42px clamp(28px, 4vw, 64px) 64px;
}
.cms_panel { max-width: 1440px; margin: 0 auto; animation: cms_fade .28s ease; }
@keyframes cms_fade { from { opacity: 0; transform: translateY(3px); } to { opacity: 1; transform: none; } }
.cms_page_head {
	display: flex;
	align-items: flex-end;
	justify-content: space-between;
	gap: 30px;
	margin-bottom: 30px;
}
.cms_eyebrow { margin: 0 0 4px; color: var(--cms_blue); font-size: .65rem; font-weight: 800; letter-spacing: .14em; }
.cms_page_head h1 { margin: 0; color: #1c2638; font-size: clamp(1.7rem,2.5vw,2.12rem); line-height: 1.35; letter-spacing: .01em; }
.cms_page_head p:not(.cms_eyebrow) { margin: 6px 0 0; color: var(--cms_muted); font-size: .82rem; }
.cms_head_actions { display: flex; align-items: center; gap: 10px; }
.cms_head_actions .cms_secondary_button { display: inline-flex; align-items: center; gap: 6px; font-size: .72rem; white-space: nowrap; }
.cms_head_actions .cms_secondary_button .material-icons-outlined { font-size: 18px; }
.cms_date { color: var(--cms_muted); font-size: .76rem; }
.cms_admin_page .cms_primary_button {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	gap: 7px;
	min-height: 43px;
	padding: 0 18px;
	color: #fff;
	font-size: .78rem;
	font-weight: 700;
	text-decoration: none;
	border: 0;
	border-radius: 9px;
	background: var(--cms_blue);
	box-shadow: 0 5px 12px rgba(77,118,232,.17);
	cursor: pointer;
	transition: transform .2s, background .2s;
}
.cms_admin_page .cms_primary_button:hover { color: #fff; background: #3c66dc; transform: translateY(-1px); }
.cms_admin_page .cms_primary_button .material-icons-outlined { color: #fff; font-size: 18px; }

.cms_summary_grid { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: 16px; }
.cms_summary_card {
	display: grid;
	grid-template-columns: 46px 1fr;
	gap: 14px;
	min-height: 154px;
	padding: 21px 19px 17px;
	border: 1px solid var(--cms_line);
	border-radius: 14px;
	background: var(--cms_surface);
	box-shadow: 0 3px 12px rgba(28,39,61,.025);
}
.cms_summary_icon { display: grid; place-items: center; width: 46px; height: 46px; border-radius: 12px; }
.cms_summary_icon .material-icons-outlined { font-size: 23px; }
.cms_tone_blue .cms_summary_icon { color: #4d76e8; background: #edf2ff; }
.cms_tone_orange .cms_summary_icon { color: #e89348; background: #fff4e8; }
.cms_tone_pink .cms_summary_icon { color: #d66e9d; background: #fff0f7; }
.cms_tone_green .cms_summary_icon { color: #37a57d; background: #eaf8f3; }
.cms_summary_card > div:last-child { display: flex; flex-direction: column; min-width: 0; }
.cms_summary_card span:first-child { color: var(--cms_muted); font-size: .71rem; font-weight: 600; }
.cms_summary_card strong { margin-top: 4px; color: #1c2638; font-size: 1.75rem; line-height: 1.25; letter-spacing: -.02em; }
.cms_summary_card strong small { margin-left: 3px; font-size: .68rem; font-weight: 600; }
.cms_summary_card button {
	display: flex;
	align-items: center;
	gap: 3px;
	align-self: flex-start;
	margin-top: auto;
	padding: 0;
	color: #68738a;
	font-size: .67rem;
	font-weight: 600;
	border: 0;
	background: transparent;
	cursor: pointer;
}
.cms_summary_card button .material-icons-outlined { font-size: 14px; }
.cms_dashboard_planner { display: grid; grid-template-columns: minmax(270px,320px) minmax(0,1fr); align-items: start; gap: 20px; margin-top: 20px; }
.cms_dashboard_anniversary_card { min-width: 0; overflow: hidden; }
.cms_dashboard_section_head { display: flex; align-items: center; justify-content: space-between; gap: 16px; min-height: 78px; padding: 15px 20px; border-bottom: 1px solid var(--cms_line); }
.cms_dashboard_section_head h2 { font-size: .96rem; }
.cms_dashboard_section_head p { margin-top: 4px; color: var(--cms_muted); font-size: .68rem; }
.cms_dashboard_section_head > .material-icons-outlined { display: grid; place-items: center; flex: 0 0 auto; width: 38px; height: 38px; color: #8061c8; font-size: 20px; border-radius: 10px; background: #f4efff; }
.cms_milestone_grid { display: grid; grid-template-columns: 1fr; gap: 0; padding: 0 18px 14px; }
.cms_milestone_card {
	display: grid;
	grid-template-columns: 40px minmax(0,1fr);
	align-items: center;
	gap: 12px;
	min-height: 96px;
	padding: 14px 2px;
	border-bottom: 1px solid #edf0f4;
}
.cms_milestone_card:last-child { border-bottom: 0; }
.cms_milestone_icon { display: grid; place-items: center; width: 40px; height: 40px; font-size: 20px; border-radius: 11px; }
.cms_milestone_card.is_open .cms_milestone_icon { color: #2d9370; background: #eaf8f3; }
.cms_milestone_card.is_integer .cms_milestone_icon { color: #8061c8; background: #f4efff; }
.cms_milestone_card.is_half .cms_milestone_icon { color: #d58b35; background: #fff4e5; }
.cms_milestone_card > div { display: flex; min-width: 0; flex-direction: column; }
.cms_milestone_card div > span { color: var(--cms_muted); font-size: .68rem; font-weight: 700; }
.cms_milestone_card strong { margin-top: 2px; color: #202a3b; font-size: 1.38rem; line-height: 1.25; letter-spacing: -.02em; }
.cms_milestone_card small { margin-top: 5px; overflow: hidden; color: #97a0b0; font-size: .61rem; text-overflow: ellipsis; white-space: nowrap; }
.cms_milestone_missing { display: grid; grid-column: 1 / -1; grid-template-columns: 42px minmax(0,1fr); align-items: center; gap: 13px; min-height: 88px; margin-top: 16px; padding: 17px; color: #59657a; border: 1px dashed #ccd4e0; border-radius: 12px; background: #fafbfc; }
.cms_milestone_missing > .material-icons-outlined { display: grid; place-items: center; width: 42px; height: 42px; color: #8b98aa; border-radius: 12px; background: #eef1f5; }
.cms_milestone_missing div { display: flex; flex-direction: column; }
.cms_milestone_missing strong { font-size: .77rem; }
.cms_milestone_missing small { margin-top: 3px; color: var(--cms_muted); font-size: .65rem; }
.cms_milestone_missing button { grid-column: 1 / -1; min-height: 36px; padding: 0 13px; color: #4867c7; font-size: .65rem; font-weight: 700; border: 1px solid #d7e0fa; border-radius: 8px; background: #f4f7ff; cursor: pointer; }
.cms_dashboard_calendar_card { min-width: 0; overflow: hidden; }
.cms_dashboard_calendar_head { display: flex; align-items: center; justify-content: space-between; gap: 18px; min-height: 78px; padding: 15px 20px; border-bottom: 1px solid var(--cms_line); }
.cms_dashboard_calendar_head h2 { font-size: .96rem; }
.cms_dashboard_calendar_head p { margin-top: 4px; color: var(--cms_muted); font-size: .68rem; }
.cms_dashboard_calendar_controls { display: flex; align-items: center; gap: 8px; }
.cms_dashboard_calendar_controls button { display: grid; place-items: center; min-width: 34px; height: 34px; padding: 0 10px; color: #536178; font-size: .63rem; font-weight: 800; border: 1px solid #dfe4ed; border-radius: 8px; background: #fff; cursor: pointer; }
.cms_dashboard_calendar_controls button .material-icons-outlined { font-size: 18px; }
.cms_dashboard_calendar_controls strong { min-width: 94px; font-size: .78rem; text-align: center; }
.cms_dashboard_calendar { display: grid; grid-template-columns: repeat(7,minmax(0,1fr)); width: 100%; padding: 0 14px 14px; }
.cms_dashboard_calendar_weekday { display: grid; place-items: center; min-height: 38px; color: #59657a; font-size: .61rem; font-weight: 800; border-bottom: 1px solid #e6eaf0; }
.cms_dashboard_calendar_weekday:first-child { color: #e04d4d; }
.cms_dashboard_calendar_weekday:nth-child(7) { color: #3970dc; }
.cms_dashboard_calendar_day { min-width: 0; min-height: 112px; overflow: hidden; padding: 7px; border-right: 1px solid #edf0f4; border-bottom: 1px solid #edf0f4; background: #fff; }
.cms_dashboard_calendar_day:nth-child(7n+1) { border-left: 1px solid #edf0f4; }
.cms_dashboard_calendar_day.is_outside { color: #c0c6d0; background: #fafbfc; }
.cms_dashboard_calendar_day.is_today { background: #f5f8ff; box-shadow: inset 0 0 0 2px #8da6eb; }
.cms_dashboard_calendar_day > strong { font-size: .62rem; }
.cms_dashboard_calendar_day.is_sunday > strong { color: #e04d4d; }
.cms_dashboard_calendar_day.is_saturday > strong { color: #3970dc; }
.cms_dashboard_calendar_mobile_label { display: none; }
.cms_dashboard_calendar_event { display: block; width: 100%; min-width: 0; overflow: hidden; margin-top: 5px; padding: 4px 5px; color: #3e4b62; font-family: inherit; font-size: .52rem; font-weight: 700; text-align: left; text-overflow: ellipsis; white-space: nowrap; border: 1px solid transparent; border-radius: 5px; background: #f5f7fb; }
button.cms_dashboard_calendar_event { cursor: pointer; }
.cms_dashboard_calendar_event.is_store { color: #6d4db5; border-color: #e2d8fa; background: #f7f3ff; }
.cms_dashboard_calendar_event.is_birthday { color: #b65383; border-color: #f4d9e6; background: #fff3f8; }
.cms_dashboard_calendar_event.is_anniversary { color: #7759b9; border-color: #e2daf3; background: #f7f4fd; }
.cms_dashboard_calendar_event.is_news { color: #3f63bd; border-color: #dbe4fa; background: #f3f6ff; }
.cms_dashboard_calendar_event.is_info { color: #b56d2d; border-color: #f3dfc9; background: #fff7ee; }
.cms_dashboard_calendar_more { display: block; margin-top: 4px; color: #919baa; font-size: .5rem; }
.cms_dashboard_calendar_legend { display: flex; flex-wrap: wrap; gap: 12px; padding: 0 20px 16px; color: #788397; font-size: .57rem; }
.cms_dashboard_calendar_legend span::before { display: inline-block; width: 7px; height: 7px; margin-right: 5px; border-radius: 50%; background: #aeb8c8; content: ""; }
.cms_dashboard_calendar_legend .is_store::before { background: #8061c8; }
.cms_dashboard_calendar_legend .is_birthday::before { background: #d66e9d; }
.cms_dashboard_calendar_legend .is_anniversary::before { background: #9170d8; }
.cms_dashboard_calendar_legend .is_news::before { background: #4d76e8; }
.cms_dashboard_calendar_legend .is_info::before { background: #e89348; }
.cms_upcoming_grid { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 20px; margin-top: 20px; }
.cms_upcoming_head_icon { display: grid; place-items: center; flex: 0 0 auto; width: 38px; height: 38px; font-size: 19px; border-radius: 10px; }
.cms_upcoming_head_icon.is_birthday { color: #d66e9d; background: #fff0f7; }
.cms_upcoming_head_icon.is_anniversary { color: #9170d8; background: #f4efff; }
.cms_upcoming_list { min-height: 92px; padding: 4px 20px 10px; }
.cms_upcoming_item {
	display: grid;
	grid-template-columns: 42px minmax(0,1fr) auto;
	align-items: center;
	gap: 12px;
	width: 100%;
	min-height: 68px;
	padding: 10px 4px;
	text-align: left;
	border: 0;
	border-bottom: 1px solid #eff1f5;
	background: transparent;
	cursor: pointer;
}
.cms_upcoming_item:last-child { border-bottom: 0; }
.cms_upcoming_item:hover { background: #fafbfe; }
.cms_upcoming_avatar { display: grid; place-items: center; width: 42px; height: 42px; overflow: hidden; color: #9ba5b6; border-radius: 50%; background: #f0f2f6; }
.cms_upcoming_avatar img { width: 100%; height: 100%; object-fit: cover; }
.cms_upcoming_avatar .material-icons-outlined { font-size: 22px; }
.cms_upcoming_copy,
.cms_upcoming_meta { display: flex; min-width: 0; flex-direction: column; }
.cms_upcoming_copy strong { overflow: hidden; color: #263247; font-size: .76rem; text-overflow: ellipsis; white-space: nowrap; }
.cms_upcoming_copy small { margin-top: 3px; color: var(--cms_muted); font-size: .65rem; }
.cms_upcoming_meta { align-items: flex-end; }
.cms_upcoming_meta strong { color: #6a53ad; font-size: .72rem; }
.cms_upcoming_meta small { margin-top: 3px; color: var(--cms_muted); font-size: .62rem; }
.cms_upcoming_empty { display: flex; align-items: center; justify-content: center; gap: 8px; min-height: 88px; color: var(--cms_muted); font-size: .69rem; text-align: center; }
.cms_upcoming_empty .material-icons-outlined { color: #b4bcc9; font-size: 19px; }
.cms_dashboard_grid { display: grid; grid-template-columns: minmax(0,1.55fr) minmax(320px,.8fr); gap: 20px; margin-top: 20px; }
.cms_content_card,
.cms_list_card {
	border: 1px solid var(--cms_line);
	border-radius: 14px;
	background: var(--cms_surface);
	box-shadow: 0 3px 12px rgba(28,39,61,.025);
}
.cms_card_head { display: flex; align-items: flex-start; justify-content: space-between; gap: 20px; padding: 23px 24px 18px; border-bottom: 1px solid var(--cms_line); }
.cms_card_head h2 { margin: 0; font-size: .96rem; }
.cms_card_head p { margin: 4px 0 0; color: var(--cms_muted); font-size: .7rem; }
.cms_text_button { padding: 4px 0; color: var(--cms_blue); font-size: .7rem; font-weight: 700; border: 0; background: transparent; cursor: pointer; }
.cms_activity_list { padding: 4px 24px; }
.cms_activity_item { display: grid; grid-template-columns: 38px 1fr auto; align-items: center; gap: 13px; min-height: 78px; border-bottom: 1px solid #eff1f5; }
.cms_activity_item:last-child { border: 0; }
.cms_activity_icon { display: grid; place-items: center; width: 36px; height: 36px; border-radius: 9px; }
.cms_activity_icon .material-icons-outlined { font-size: 18px; }
.cms_activity_icon.is_news { color: #4d76e8; background: #edf2ff; }
.cms_activity_icon.is_cast { color: #d66e9d; background: #fff0f7; }
.cms_activity_icon.is_setting { color: #37a57d; background: #eaf8f3; }
.cms_activity_icon.is_info { color: #e89348; background: #fff4e8; }
.cms_activity_item div { display: flex; flex-direction: column; min-width: 0; }
.cms_activity_item strong { overflow: hidden; font-size: .76rem; text-overflow: ellipsis; white-space: nowrap; }
.cms_activity_item div span { margin-top: 2px; color: var(--cms_muted); font-size: .67rem; }
.cms_activity_item time { color: #a0a9b9; font-size: .65rem; white-space: nowrap; }
.cms_quick_actions { padding: 10px 19px 16px; }
.cms_quick_actions button { display: grid; grid-template-columns: 40px 1fr 18px; align-items: center; gap: 12px; width: 100%; padding: 11px 5px; text-align: left; border: 0; border-bottom: 1px solid #eff1f5; background: transparent; cursor: pointer; }
.cms_quick_actions button:last-child { border: 0; }
.cms_quick_actions button > span:nth-child(2) { display: flex; flex-direction: column; }
.cms_quick_actions strong { font-size: .74rem; }
.cms_quick_actions small { margin-top: 2px; color: var(--cms_muted); font-size: .63rem; }
.cms_quick_actions button > .material-icons-outlined { color: #b1b8c5; font-size: 18px; }
.cms_quick_icon { display: grid; place-items: center; width: 38px; height: 38px; border-radius: 9px; }
.cms_quick_icon .material-icons-outlined { font-size: 19px; }
.cms_quick_icon.is_blue { color: #4d76e8; background: #edf2ff; }
.cms_quick_icon.is_orange { color: #e89348; background: #fff4e8; }
.cms_quick_icon.is_pink { color: #d66e9d; background: #fff0f7; }

.cms_toolbar { display: flex; align-items: center; justify-content: space-between; gap: 20px; margin-bottom: 16px; }
.cms_search { display: flex; align-items: center; width: min(330px,100%); height: 42px; padding: 0 13px; border: 1px solid var(--cms_line); border-radius: 9px; background: #fff; }
.cms_search .material-icons-outlined { margin-right: 8px; color: #9ca5b5; font-size: 19px; }
.cms_search input { width: 100%; padding: 0; color: var(--cms_text); font-size: .71rem; border: 0; outline: 0; background: transparent; }
.cms_filters { display: flex; align-items: center; gap: 5px; padding: 4px; border: 1px solid var(--cms_line); border-radius: 9px; background: #fff; }
.cms_filters button { min-height: 31px; padding: 0 12px; color: var(--cms_muted); font-size: .68rem; font-weight: 600; border: 0; border-radius: 6px; background: transparent; cursor: pointer; }
.cms_filters button.is_active { color: #385bca; background: var(--cms_blue_soft); }
.cms_list_card { overflow: hidden; }
.cms_list_header,
.cms_news_row { display: grid; grid-template-columns: minmax(340px,1fr) 110px 90px 36px; align-items: center; gap: 18px; }
.cms_list_header { min-height: 42px; padding: 0 21px; color: #8a94a6; font-size: .65rem; font-weight: 700; background: #fafbfc; border-bottom: 1px solid var(--cms_line); }
.cms_news_row { min-height: 98px; margin: 0 21px; padding: 14px 0; border-bottom: 1px solid #eceff3; }
.cms_news_row:last-child { border: 0; }
.cms_news_row > img,
.cms_no_image { grid-column: 1; grid-row: 1; width: 102px; aspect-ratio: 16/9; border-radius: 7px; object-fit: cover; }
.cms_no_image { display: grid; place-items: center; color: #aab2bf; background: #eef0f4; }
.cms_news_row > div:nth-child(2) { grid-column: 1; grid-row: 1; display: flex; flex-direction: column; min-width: 0; padding-left: 120px; }
.cms_news_row strong { overflow: hidden; font-size: .76rem; text-overflow: ellipsis; white-space: nowrap; }
.cms_news_type { display: inline-flex; align-items: center; align-self: flex-start; min-height: 20px; margin-bottom: 5px; padding: 0 8px; font-size: .58rem; font-weight: 800; border-radius: 20px; }
.cms_news_type.is_cast_event { color: #b35382; background: #fff0f7; }
.cms_news_type.is_store_event { color: #4769ca; background: #edf2ff; }
.cms_news_type.is_notice { color: #4f786b; background: #eaf7f2; }
.cms_news_row small { overflow: hidden; margin-top: 5px; color: var(--cms_muted); font-size: .66rem; text-overflow: ellipsis; white-space: nowrap; }
.cms_news_row time,
.cms_simple_row time { color: #6f798b; font-size: .7rem; }
.cms_status { display: inline-flex; align-items: center; justify-content: center; width: fit-content; min-width: 56px; height: 25px; padding: 0 9px; font-size: .62rem; font-weight: 700; white-space: nowrap; border-radius: 20px; }
.cms_status.is_public { color: #23805f; background: #e9f7f1; }
.cms_status.is_scheduled { color: #4063c8; background: #edf2ff; }
.cms_status.is_draft,
.cms_status.is_hidden { color: #70798a; background: #edf0f4; }
.cms_more_button { display: grid; place-items: center; width: 32px; height: 32px; padding: 0; color: #8e97a7; border: 0; border-radius: 7px; background: transparent; cursor: pointer; }
.cms_more_button:hover { background: #f1f3f7; }

.cms_news_pagination { display: flex; align-items: center; justify-content: center; gap: 7px; padding: 22px; border-top: 1px solid var(--cms_line); }
.cms_news_pagination button { display: grid; place-items: center; min-width: 34px; height: 34px; padding: 0 9px; color: var(--cms_muted); font: inherit; font-size: .68rem; font-weight: 700; border: 1px solid var(--cms_line); border-radius: 8px; background: #fff; cursor: pointer; }
.cms_news_pagination button:hover,
.cms_news_pagination button:focus-visible,
.cms_news_pagination button.is_active { color: #fff; border-color: #4666c5; background: #4666c5; }
.cms_news_pagination button:disabled { opacity: .35; cursor: default; }
.cms_news_pagination > span { min-width: 18px; color: #9aa2b0; text-align: center; }

.cms_simple_list { overflow: hidden; }
.cms_simple_header,
.cms_simple_row { display: grid; grid-template-columns: minmax(300px,1fr) 120px 90px 36px; align-items: center; gap: 18px; }
.cms_simple_header { min-height: 42px; padding: 0 22px; color: #8a94a6; font-size: .65rem; font-weight: 700; background: #fafbfc; border-bottom: 1px solid var(--cms_line); }
.cms_simple_row { min-height: 87px; margin: 0 22px; border-bottom: 1px solid #eceff3; }
.cms_simple_row:last-child { border: 0; }
.cms_simple_row > div:first-child { display: flex; flex-direction: column; min-width: 0; }
.cms_simple_row strong { overflow: hidden; font-size: .78rem; text-overflow: ellipsis; white-space: nowrap; }
.cms_simple_row small { margin-top: 4px; color: var(--cms_muted); font-size: .66rem; }

.cms_cast_grid { display: grid; grid-template-columns: repeat(5,minmax(0,1fr)); gap: 15px; }
.cms_cast_card { overflow: hidden; border: 1px solid var(--cms_line); border-radius: 13px; background: #fff; transition: transform .2s, box-shadow .2s; }
.cms_cast_card:hover { transform: translateY(-2px); box-shadow: 0 9px 24px rgba(32,42,59,.08); }
.cms_cast_image { position: relative; aspect-ratio: 4/5; overflow: hidden; background: #eef0f4; }
.cms_cast_image img { width: 100%; height: 100%; object-fit: cover; }
.cms_cast_image .cms_status { position: absolute; top: 10px; right: 10px; box-shadow: 0 3px 10px rgba(0,0,0,.07); }
.cms_cast_body { padding: 14px; }
.cms_cast_body h2 { margin: 0; font-size: .92rem; }
.cms_cast_body h2 span { font-size: .72rem; }
.cms_cast_body p { margin: 2px 0 0; color: var(--cms_muted); font-size: .62rem; }
.cms_cast_meta { display: flex; align-items: center; justify-content: space-between; min-height: 27px; margin-top: 12px; }
.cms_cast_meta > span:first-child { display: flex; gap: 4px; }
.cms_cast_sns_icons a { display: inline-flex; border-radius: 50%; transition: opacity .2s, transform .2s; }
.cms_cast_sns_icons a:hover,
.cms_cast_sns_icons a:focus-visible { opacity: .7; transform: translateY(-1px); }
.cms_cast_meta img { width: 23px; height: 23px; object-fit: contain; border-radius: 50%; }
.cms_cast_meta small { color: var(--cms_muted); font-size: .6rem; }
.cms_cast_meta .cms_sns_empty { color: #a0a8b6; font-size: .6rem; }
.cms_cast_body > button { display: flex; align-items: center; justify-content: space-between; width: 100%; min-height: 37px; margin-top: 12px; padding: 0 11px; color: #4666c5; font-size: .67rem; font-weight: 700; border: 1px solid #dbe3fa; border-radius: 8px; background: #f7f9ff; cursor: pointer; }
.cms_cast_body > button .material-icons-outlined { font-size: 15px; }

.cms_manage_grid { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: 15px; }
.cms_menu_grid { grid-template-columns: repeat(5,minmax(0,1fr)); }
.cms_manage_card, .cms_qa_card { overflow: hidden; border: 1px solid var(--cms_line); border-radius: 13px; background: #fff; }
.cms_manage_image { display: grid; place-items: center; aspect-ratio: 16/9; overflow: hidden; color: #a6afbd; background: #eef1f5; }
.cms_manage_image img { width: 100%; height: 100%; object-fit: cover; }
.cms_manage_image .material-icons-outlined { font-size: 34px; }
.cms_menu_card .cms_manage_image { aspect-ratio: 4/5; }
.cms_manage_body, .cms_qa_card { padding: 16px; }
.cms_manage_body > div:first-child, .cms_qa_card > div:first-child { display: flex; align-items: center; justify-content: space-between; gap: 8px; }
.cms_manage_category { color: #4968c5; font-size: .62rem; font-weight: 800; }
.cms_manage_body h2, .cms_qa_card h2 { margin: 13px 0 0; font-size: .88rem; }
.cms_manage_body p, .cms_qa_card p { min-height: 2.8em; margin: 6px 0 0; overflow: hidden; color: var(--cms_muted); font-size: .66rem; line-height: 1.45; }
.cms_manage_body > strong { display: block; margin-top: 12px; font-size: .9rem; }
.cms_manage_body > button, .cms_qa_card > button { display: inline-flex; align-items: center; justify-content: center; gap: 5px; width: 100%; min-height: 36px; margin-top: 13px; color: #4666c5; font-size: .67rem; font-weight: 700; border: 1px solid #dbe3fa; border-radius: 8px; background: #f7f9ff; cursor: pointer; }
.cms_manage_body > button .material-icons-outlined, .cms_qa_card > button .material-icons-outlined { font-size: 15px; }
.cms_qa_grid { grid-template-columns: repeat(2,minmax(0,1fr)); }
.cms_qa_card h2 { display: flex; gap: 8px; }
.cms_qa_card h2 b { color: #4d76e8; }
.cms_qa_card p { display: flex; gap: 8px; min-height: 3.8em; }
.cms_qa_card p b { color: #d66e9d; }

.cms_settings_layout { display: grid; grid-template-columns: 235px minmax(0,1fr); gap: 20px; align-items: start; }
.cms_settings_nav { overflow: hidden; padding: 8px; border: 1px solid var(--cms_line); border-radius: 13px; background: #fff; }
.cms_settings_nav button { display: grid; grid-template-columns: 26px 1fr; align-items: center; gap: 10px; width: 100%; min-height: 59px; padding: 8px 10px; color: #667187; text-align: left; border: 0; border-radius: 8px; background: transparent; cursor: pointer; }
.cms_settings_nav button:hover { background: #f7f8fb; }
.cms_settings_nav button.is_active { color: #385bca; background: var(--cms_blue_soft); }
.cms_settings_nav button > .material-icons-outlined { font-size: 19px; }
.cms_settings_nav button span:last-child { display: flex; flex-direction: column; }
.cms_settings_nav strong { font-size: .72rem; }
.cms_settings_nav small { margin-top: 2px; color: #9aa3b2; font-size: .58rem; }
.cms_settings_content { min-height: 650px; border: 1px solid var(--cms_line); border-radius: 13px; background: #fff; }
.cms_group_heading { display:flex; align-items:center; justify-content:space-between; gap:16px; }
.cms_group_settings { display:grid; grid-template-columns:160px minmax(0,1fr); gap:18px; align-items:start; }
.cms_group_image_preview,.cms_group_icon_preview { display:grid; place-items:center; overflow:hidden; border:1px dashed var(--cms_line); background:#f7f8fb; color:#9aa3b2; }
.cms_group_image_preview { width:160px; height:90px; border-radius:12px; }
.cms_group_icon_preview { width:82px; height:82px; border-radius:18px; }
.cms_group_image_preview img,.cms_group_icon_preview img,.cms_group_image_preview canvas,.cms_group_icon_preview canvas { width:100%; height:100%; object-fit:contain; }
.cms_pending_image_preview { display:block; width:100%; height:100%; }
.cms_group_store_list { display:grid; gap:12px; margin-top:14px; }
.cms_group_store_card { display:grid; grid-template-columns:auto minmax(0,1fr) auto; gap:14px; align-items:center; padding:14px; border:1px solid var(--cms_line); border-radius:12px; background:#fff; }
.cms_group_store_fields { display:grid; grid-template-columns:1fr 1fr; gap:10px; }
.cms_group_store_actions { display:grid; gap:6px; }
.cms_group_store_actions button { border:1px solid var(--cms_line); border-radius:8px; background:#fff; cursor:pointer; }
@media (max-width:700px) { .cms_group_settings,.cms_group_store_card { grid-template-columns:1fr; } .cms_group_store_fields { grid-template-columns:1fr; } }
.cms_settings_panel { animation: cms_fade .25s ease; }
.cms_form_head { display: flex; align-items: center; justify-content: space-between; gap: 20px; min-height: 88px; padding: 20px 28px; border-bottom: 1px solid var(--cms_line); }
.cms_form_head h2 { margin: 0; font-size: 1.05rem; }
.cms_form_head p { margin: 4px 0 0; color: var(--cms_muted); font-size: .68rem; }
.cms_saved_state { display: flex; align-items: center; gap: 5px; color: #37a57d; font-size: .65rem; font-weight: 600; }
.cms_saved_state .material-icons-outlined { font-size: 17px; }
.cms_form_section { padding: 27px 28px; border-bottom: 1px solid var(--cms_line); }
.cms_form_section:last-child { border: 0; }
.cms_form_section h3 { margin: 0 0 18px; font-size: .8rem; }
.cms_form_grid { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 18px; }
.cms_field { display: flex; flex-direction: column; gap: 7px; }
.cms_field > span { color: #4d586c; font-size: .68rem; font-weight: 600; }
.cms_sns_settings .cms_field > span { display: flex; align-items: center; gap: 7px; }
.cms_sns_settings .cms_field > span img { width: 24px; height: 24px; object-fit: contain; border-radius: 6px; }
.cms_field > span em { margin-left: 5px; padding: 2px 5px; color: #c45161; font-size: .55rem; font-style: normal; border-radius: 4px; background: #fff0f2; }
.cms_field input,
.cms_field textarea { width: 100%; padding: 10px 12px; color: #333d50; font-size: .7rem; border: 1px solid #dfe3ea; border-radius: 8px; outline: 0; background: #fff; transition: border .2s, box-shadow .2s; }
.cms_field input { min-height: 42px; }
.cms_field textarea { min-height: 100px; resize: vertical; }
.cms_field input:focus,
.cms_field textarea:focus { border-color: #7c98eb; box-shadow: 0 0 0 3px rgba(77,118,232,.1); }
.cms_span_2 { grid-column: span 2; }
.cms_nearest_station_title { display: flex; align-items: baseline; gap: 10px; margin-top: 6px; padding-top: 16px; border-top: 1px solid var(--cms_border); }
.cms_nearest_station_title strong { font-size: .76rem; }
.cms_nearest_station_title small { color: var(--cms_muted); font-size: .61rem; }
.cms_toggle_row { display: flex; align-items: center; justify-content: space-between; gap: 20px; min-height: 72px; border-bottom: 1px solid #eef0f4; }
.cms_toggle_row:last-child { border: 0; }
.cms_admin_avatar_setting { display: grid; grid-template-columns: 84px 1fr; align-items: center; gap: 18px; }
.cms_admin_avatar_preview { display: grid; place-items: center; width: 84px; height: 84px; overflow: hidden; color: #fff; font-size: 1.35rem; font-weight: 700; border-radius: 50%; background: linear-gradient(135deg,#6a86e8,#9b6de0); }
.cms_favicon_preview { display: grid; place-items: center; width: 84px; height: 84px; overflow: hidden; color: #677594; border: 1px solid #dfe4ed; border-radius: 16px; background: #f4f6fa; }
.cms_favicon_preview img { width: 100%; height: 100%; object-fit: contain; }
.cms_favicon_preview .material-icons-outlined { font-size: 30px; }
.cms_ogp_setting { display: grid; grid-template-columns: minmax(240px,360px) 1fr; align-items: center; gap: 20px; }
.cms_ogp_preview { display: grid; place-items: center; aspect-ratio: 1200/630; overflow: hidden; color: #8d98aa; border: 1px dashed #ccd4e0; border-radius: 10px; background: #f3f5f8; }
.cms_ogp_preview img { width: 100%; height: 100%; object-fit: cover; }
.cms_ogp_preview .material-icons-outlined { font-size: 30px; }
.cms_ogp_preview p { margin-top: -42px; font-size: .61rem; }
.cms_map_image_setting { display: grid; grid-template-columns: minmax(180px,260px) 1fr; align-items: center; gap: 20px; margin-top: 20px; }
.cms_map_image_preview { display: grid; place-items: center; aspect-ratio: 1; overflow: hidden; color: #8d98aa; border: 1px dashed #ccd4e0; border-radius: 10px; background: #f3f5f8; }
.cms_map_image_preview img { width: 100%; height: 100%; object-fit: cover; }
.cms_map_image_preview .material-icons-outlined { font-size: 30px; }
.cms_map_image_preview p { margin-top: -42px; font-size: .61rem; }
.cms_form_section_description { margin: -5px 0 16px; color: var(--cms_muted); font-size: .68rem; line-height: 1.7; }
.cms_fallback_images_setting { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 16px; }
.cms_fallback_image_card { display: grid; align-content: start; gap: 10px; padding: 16px; border: 1px solid var(--cms_line); border-radius: 11px; background: #fafbfc; }
.cms_fallback_image_head { display: flex; align-items: center; justify-content: space-between; gap: 12px; }
.cms_fallback_image_head strong { font-size: .76rem; }
.cms_fallback_image_head em { padding: 4px 9px; color: #4b64ad; font-size: .61rem; font-style: normal; font-weight: 800; border-radius: 16px; background: var(--cms_blue_soft); }
.cms_fallback_image_preview { display: grid; place-items: center; overflow: hidden; color: #8d98aa; border: 1px dashed #ccd4e0; border-radius: 9px; background: #f3f5f8; }
.cms_fallback_image_preview.is_news { aspect-ratio: 16/9; }
.cms_fallback_image_preview.is_cast { width: min(100%,240px); aspect-ratio: 4/5; justify-self: center; }
.cms_fallback_image_preview img { width: 100%; height: 100%; object-fit: cover; }
.cms_fallback_image_preview .material-icons-outlined { font-size: 28px; }
.cms_fallback_image_preview p { margin-top: -36px; font-size: .6rem; }
.cms_fallback_image_card > p { color: var(--cms_muted); font-size: .64rem; line-height: 1.6; }
.cms_fallback_image_card > small { color: var(--cms_muted); font-size: .59rem; }
.cms_fallback_image_actions { display: flex; flex-wrap: wrap; align-items: center; gap: 8px; }
.cms_map_image_controls > strong { display: block; margin-bottom: 5px; font-size: .72rem; }
.cms_map_image_controls > p { margin: 0 0 12px; color: var(--cms_muted); font-size: .68rem; }
.cms_map_image_controls > small { display: block; margin-top: 8px; color: var(--cms_muted); font-size: .6rem; }
.cms_ogp_controls > p { margin: 0; color: var(--cms_muted); font-size: .68rem; }
.cms_ogp_controls > small { display: block; margin-top: 8px; color: var(--cms_muted); font-size: .6rem; }
.cms_ogp_fields { margin-top: 20px; }
.cms_admin_avatar_setting p { margin: 0 0 4px; color: var(--cms_muted); font-size: .68rem; }
.cms_admin_avatar_setting small { display: block; margin-top: 8px; color: var(--cms_muted); font-size: .6rem; }
.cms_admin_page .cms_avatar_remove { min-height: 35px; margin-top: 10px; margin-left: 7px; padding: 0 11px; vertical-align: top; color: #b76670; font-size: .67rem; font-weight: 700; border: 1px solid #efdadd; border-radius: 7px; background: #fffafa; cursor: pointer; }
.cms_toggle_row strong { font-size: .74rem; }
.cms_toggle_row p { margin: 3px 0 0; color: var(--cms_muted); font-size: .64rem; }
.cms_switch { position: relative; flex: 0 0 auto; width: 43px; height: 24px; }
.cms_switch input { position: absolute; opacity: 0; }
.cms_switch span { position: absolute; inset: 0; border-radius: 20px; background: #cbd1dc; cursor: pointer; transition: .2s; }
.cms_switch span::after { position: absolute; top: 3px; left: 3px; width: 18px; height: 18px; border-radius: 50%; background: #fff; box-shadow: 0 1px 4px rgba(0,0,0,.2); content: ""; transition: .2s; }
.cms_switch input:checked + span { background: var(--cms_blue); }
.cms_switch input:checked + span::after { transform: translateX(19px); }
.cms_placeholder_editor { display: flex; flex-direction: column; align-items: center; justify-content: center; min-height: 480px; padding: 40px; text-align: center; }
.cms_placeholder_editor > .material-icons-outlined { display: grid; place-items: center; width: 65px; height: 65px; color: #637ed2; font-size: 30px; border-radius: 18px; background: var(--cms_blue_soft); }
.cms_placeholder_editor h3 { margin: 20px 0 0; font-size: .92rem; }
.cms_placeholder_editor p { max-width: 380px; margin: 7px 0 0; color: var(--cms_muted); font-size: .7rem; }
.cms_placeholder_editor button { min-height: 39px; margin-top: 20px; padding: 0 17px; color: #4563be; font-size: .7rem; font-weight: 700; border: 1px solid #d5def6; border-radius: 8px; background: #f7f9ff; cursor: pointer; }
.cms_google_note { display: flex; align-items: flex-start; gap: 10px; margin: 20px 25px 25px; padding: 14px 16px; color: #52627d; border: 1px solid #dbe4f8; border-radius: 9px; background: #f4f7ff; }
.cms_google_note .material-icons-outlined { color: #5575ce; font-size: 19px; }
.cms_google_note p { margin: 0; font-size: .68rem; line-height: 1.7; }
.cms_field > small { color: var(--cms_muted); font-size: .59rem; line-height: 1.6; }
.cms_field select:disabled { color: #6f798b; background: #f3f5f8; cursor: not-allowed; }
.cms_admin_management { padding: 24px 28px 28px; border: 1px solid var(--cms_line); border-radius: 13px; background: #fff; }
.cms_admin_summary { display: grid; grid-template-columns: repeat(4,minmax(0,1fr)); gap: 10px; }
.cms_admin_summary article { display: flex; align-items: center; justify-content: space-between; gap: 10px; padding: 14px 15px; border: 1px solid var(--cms_line); border-radius: 10px; background: #fafbfc; }
.cms_admin_summary span { color: var(--cms_muted); font-size: .62rem; font-weight: 700; }
.cms_admin_summary strong { color: #354a8e; font-size: 1rem; }
.cms_admin_role_guide { margin-top: 16px; padding: 16px; border: 1px solid var(--cms_line); border-radius: 9px; background: #fafbfc; }
.cms_admin_role_guide h2 { margin: 0 0 10px; font-size: .8rem; }
.cms_admin_role_scroll { overflow-x: auto; }
.cms_admin_role_scroll:focus-visible { outline: 2px solid #5575ce; outline-offset: 3px; }
.cms_admin_role_table { width: 100%; min-width: 580px; table-layout: fixed; border-collapse: collapse; color: var(--cms_text); font-size: .72rem; line-height: 1.6; background: #fff; }
.cms_admin_role_table th, .cms_admin_role_table td { padding: 10px 8px; border: 1px solid var(--cms_line); }
.cms_admin_role_table th { text-align: left; overflow-wrap: anywhere; }
.cms_admin_role_table thead th { background: #edf2fb; }
.cms_admin_role_table thead th:not(:first-child) { width: 5.5em; text-align: center; white-space: nowrap; }
.cms_admin_role_table tbody th { font-weight: 400; }
.cms_admin_role_table td { text-align: center; font-size: 1rem; font-weight: 700; }
.cms_admin_role_note { margin: 10px 0 0; color: #52627d; font-size: .68rem; line-height: 1.7; }
.cms_admin_notice { display: flex; align-items: flex-start; gap: 9px; margin-top: 16px; padding: 13px 15px; color: #52627d; border: 1px solid #dbe4f8; border-radius: 9px; background: #f4f7ff; }
.cms_admin_notice .material-icons-outlined { color: #5575ce; font-size: 19px; }
.cms_admin_notice p { margin: 0; font-size: .64rem; line-height: 1.7; }
.cms_admin_add_form { margin-top: 16px; padding: 18px; border: 1px solid #d9e2f7; border-radius: 11px; background: #f9fbff; }
.cms_admin_add_form > div:first-child { display: flex; flex-direction: column; gap: 3px; }
.cms_admin_add_form > div:first-child strong { font-size: .78rem; }
.cms_admin_add_form > div:first-child small { color: var(--cms_muted); font-size: .61rem; }
.cms_admin_add_fields { display: grid; grid-template-columns: 1fr 1.2fr .75fr; gap: 12px; margin-top: 14px; }
.cms_admin_add_actions { display: flex; justify-content: flex-end; gap: 8px; margin-top: 14px; }
.cms_admin_add_actions .cms_primary_button { flex: 0 0 auto; width: auto; min-width: 0; padding-inline: 14px; font-size: .7rem; white-space: nowrap; }
.cms_admin_list { margin-top: 18px; overflow: hidden; border: 1px solid var(--cms_line); border-radius: 11px; background: #fff; }
.cms_admin_list_head,
.cms_admin_row { display: grid; grid-template-columns: minmax(220px,1.4fr) minmax(130px,.65fr) 90px minmax(190px,.8fr); align-items: center; gap: 14px; }
.cms_admin_list_head { min-height: 42px; padding: 0 16px; color: #8791a2; font-size: .58rem; font-weight: 800; letter-spacing: .05em; border-bottom: 1px solid var(--cms_line); background: #fafbfc; }
.cms_admin_row { min-height: 82px; padding: 12px 16px; border-bottom: 1px solid #edf0f4; }
.cms_admin_row:last-child { border-bottom: 0; }
.cms_admin_identity { display: grid; grid-template-columns: 42px minmax(0,1fr); align-items: center; gap: 10px; min-width: 0; }
.cms_admin_identity > span { display: grid; place-items: center; width: 42px; height: 42px; color: #fff; font-size: .76rem; font-weight: 800; border-radius: 50%; background: linear-gradient(135deg,#607de0,#8d70d8); }
.cms_admin_identity > span img { width: 100%; height: 100%; object-fit: cover; border-radius: 50%; }
.cms_admin_identity > div { display: flex; min-width: 0; flex-direction: column; gap: 3px; }
.cms_admin_identity strong { overflow: hidden; font-size: .71rem; text-overflow: ellipsis; white-space: nowrap; }
.cms_admin_identity small { overflow: hidden; color: var(--cms_muted); font-size: .59rem; text-overflow: ellipsis; white-space: nowrap; }
.cms_admin_identity em { align-self: flex-start; padding: 2px 6px; color: #4664bc; font-size: .52rem; font-style: normal; font-weight: 800; border-radius: 9px; background: #edf2ff; }
.cms_admin_role_select { width: 100%; min-height: 38px; padding: 0 30px 0 10px; color: #354056; font-size: .66rem; font-weight: 700; border: 1px solid #dfe4ed; border-radius: 7px; background: #fff; }
.cms_admin_role_fixed { display: inline-flex; align-items: center; gap: 5px; color: #7657b4; font-size: .67rem; font-weight: 800; }
.cms_admin_role_fixed .material-icons-outlined { font-size: 17px; }
.cms_admin_status { display: inline-flex; align-items: center; gap: 5px; color: #2f8a67; font-size: .62rem; font-weight: 800; }
.cms_admin_status::before { width: 7px; height: 7px; border-radius: 50%; background: #35b685; content: ""; }
.cms_admin_actions { display: flex; flex-wrap: wrap; justify-content: flex-end; gap: 6px; }
.cms_admin_actions button { min-height: 34px; padding: 0 10px; color: #4664bc; font-size: .61rem; font-weight: 800; border: 1px solid #dbe3f8; border-radius: 7px; background: #f7f9ff; cursor: pointer; }
.cms_admin_actions button[data-admin-remove] { color: #b55b67; border-color: #efd9dd; background: #fff9fa; }
.cms_admin_actions button:disabled { color: #a8afba; border-color: #e6e9ee; background: #f7f8fa; cursor: not-allowed; }
.cms_admin_loading,
.cms_admin_empty { padding: 42px 20px; color: var(--cms_muted); font-size: .7rem; text-align: center; }

/* Store-scoped media library */
.cms_media_library_panel { max-width: 1500px; }
.cms_media_notice { display:flex; align-items:flex-start; gap:10px; margin-bottom:18px; padding:13px 15px; color:#52627d; border:1px solid #dbe4f8; border-radius:10px; background:#f4f7ff; }
.cms_media_notice .material-icons-outlined { flex:0 0 auto; color:#5575ce; font-size:19px; }
.cms_media_notice p { margin:0; font-size:.66rem; line-height:1.7; }
.cms_media_toolbar { justify-content:space-between; }
.cms_media_toolbar .cms_search { order:2; }
.cms_media_result_head { display:flex; align-items:center; justify-content:space-between; margin:18px 1px 10px; color:var(--cms_muted); font-size:.64rem; }
.cms_media_result_head strong { color:#3c4659; font-size:.7rem; }
.cms_media_grid { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:16px; }
.cms_media_card { min-width:0; overflow:hidden; border:1px solid var(--cms_line); border-radius:13px; background:#fff; box-shadow:0 3px 14px rgba(20,34,60,.035); cursor:pointer; transition:transform .18s,border-color .18s,box-shadow .18s; }
.cms_media_card:hover,.cms_media_card:focus-visible { transform:translateY(-2px); border-color:#b9c8ee; box-shadow:0 8px 24px rgba(28,47,86,.09); outline:0; }
.cms_media_preview { display:grid; place-items:center; position:relative; aspect-ratio:16/10; overflow:hidden; color:#7685a1; background:linear-gradient(145deg,#eef2f8,#e4e9f2); }
.cms_media_preview img { width:100%; height:100%; object-fit:cover; }
.cms_media_preview > .material-icons-outlined { font-size:42px; }
.cms_media_preview > small { margin-top:-36px; font-size:.6rem; font-weight:800; }
.cms_media_preview.is_audio { color:#6f61ac; background:linear-gradient(145deg,#f2effb,#e7e2f6); }
.cms_media_preview.is_video { color:#4d6d9a; background:linear-gradient(145deg,#eaf2fb,#dce7f4); }
.cms_media_card_body { display:grid; gap:9px; padding:13px 14px 14px; }
.cms_media_card_title { display:flex; align-items:center; justify-content:space-between; gap:8px; min-width:0; }
.cms_media_card_title > strong { min-width:0; overflow:hidden; font-size:.71rem; text-overflow:ellipsis; white-space:nowrap; }
.cms_media_card_body > p { margin:-5px 0 0; color:var(--cms_muted); font-size:.58rem; }
.cms_media_status { display:inline-flex; flex:0 0 auto; align-items:center; gap:4px; padding:4px 7px; font-size:.54rem; font-weight:800; border-radius:12px; }
.cms_media_status::before { width:6px; height:6px; border-radius:50%; background:currentColor; content:""; }
.cms_media_status.is_published { color:#288767; background:#eaf8f2; }
.cms_media_status.is_scheduled { color:#4968c0; background:#edf2ff; }
.cms_media_status.is_ended { color:#7e8797; background:#eef0f3; }
.cms_media_period { display:flex; align-items:flex-start; gap:7px; min-width:0; padding:9px; border-radius:8px; background:#f7f8fb; }
.cms_media_period > .material-icons-outlined { color:#71809a; font-size:16px; }
.cms_media_period > span:last-child { display:flex; min-width:0; flex-direction:column; gap:2px; }
.cms_media_period small { color:#8a94a5; font-size:.52rem; }
.cms_media_period strong { overflow:hidden; color:#556075; font-size:.57rem; text-overflow:ellipsis; white-space:nowrap; }
.cms_media_url { display:grid; grid-template-columns:minmax(0,1fr) 31px; align-items:center; gap:4px; padding:4px 4px 4px 9px; border:1px solid #e2e6ed; border-radius:7px; background:#fbfcfd; }
.cms_media_url > span { overflow:hidden; color:#748096; font-family:ui-monospace,SFMono-Regular,Menlo,monospace; font-size:.52rem; text-overflow:ellipsis; white-space:nowrap; }
.cms_media_url button { display:grid; place-items:center; width:31px; height:29px; padding:0; color:#506bc1; border:0; border-radius:6px; background:#edf2ff; cursor:pointer; }
.cms_media_url button .material-icons-outlined { font-size:16px; }
.cms_media_empty { grid-column:1/-1; display:flex; min-height:280px; align-items:center; justify-content:center; flex-direction:column; padding:36px; color:var(--cms_muted); text-align:center; border:1px dashed #d3d9e3; border-radius:13px; background:#fff; }
.cms_media_empty > .material-icons-outlined { margin-bottom:12px; color:#7388c8; font-size:38px; }
.cms_media_empty strong { color:#455066; font-size:.78rem; }
.cms_media_empty p { margin:6px 0 0; font-size:.65rem; }
.cms_media_empty button { min-height:34px; margin-top:14px; padding:0 13px; color:#4965bd; font-size:.64rem; font-weight:800; border:1px solid #d6dff6; border-radius:7px; background:#f6f8ff; cursor:pointer; }
.cms_media_modal { position:fixed; inset:0; z-index:130; display:grid; place-items:center; padding:22px; }
.cms_media_modal_backdrop { position:absolute; inset:0; width:100%; border:0; background:rgba(11,19,34,.58); backdrop-filter:blur(3px); }
.cms_media_dialog { position:relative; width:min(620px,100%); max-height:calc(100vh - 44px); overflow:auto; border-radius:16px; background:#fff; box-shadow:0 26px 80px rgba(8,16,31,.3); }
.cms_media_detail_dialog { width:min(760px,100%); }
.cms_media_dialog_head { display:flex; align-items:flex-start; justify-content:space-between; gap:20px; padding:21px 23px 17px; border-bottom:1px solid var(--cms_line); }
.cms_media_dialog_head p { margin:0 0 3px; color:var(--cms_blue); font-size:.56rem; font-weight:900; letter-spacing:.13em; }
.cms_media_dialog_head h2 { margin:0; font-size:1rem; }
.cms_media_dialog_head > button { display:grid; place-items:center; width:34px; height:34px; padding:0; color:#7d8798; border:0; border-radius:8px; background:#f2f4f7; cursor:pointer; }
.cms_media_dialog_head > button .material-icons-outlined { font-size:19px; }
.cms_media_dialog_body { padding:22px 23px; }
.cms_media_drop { display:flex; min-height:190px; align-items:center; justify-content:center; flex-direction:column; padding:24px; text-align:center; border:2px dashed #cbd5ec; border-radius:13px; background:#f7f9ff; cursor:pointer; }
.cms_media_drop:hover,.cms_media_drop:focus-within { border-color:#7793df; background:#f2f6ff; }
.cms_media_drop.is_dragover { border-color:#4f70d3; background:#e9efff; box-shadow:0 0 0 4px rgba(79,112,211,.12); }
.cms_media_drop.is_dragover > .material-icons-outlined { transform:translateY(-3px); }
.cms_media_drop > .material-icons-outlined { color:#5b78d0; font-size:40px; }
.cms_media_drop strong { margin-top:9px; font-size:.78rem; }
.cms_media_drop small { margin-top:5px; color:var(--cms_muted); font-size:.61rem; }
.cms_media_drop input { position:absolute; width:1px; height:1px; opacity:0; }
.cms_media_selected { margin:9px 0 0; overflow:hidden; color:#59677e; font-size:.64rem; text-align:center; text-overflow:ellipsis; white-space:nowrap; }
.cms_media_period_fields { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:13px; margin-top:18px; }
.cms_media_period_fields label,.cms_media_detail_form > label { display:flex; min-width:0; flex-direction:column; gap:6px; }
.cms_media_period_fields span,.cms_media_detail_form > label > span { color:#4d586c; font-size:.64rem; font-weight:700; }
.cms_media_period_fields input,.cms_media_detail_form > label > input { width:100%; min-height:41px; padding:0 10px; color:#364056; font-size:.66rem; border:1px solid #dfe3ea; border-radius:8px; background:#fff; }
.cms_media_upload_status,.cms_media_detail_status { margin-top:14px; padding:10px 12px; color:#4e649f; font-size:.63rem; border:1px solid #dbe4f8; border-radius:8px; background:#f4f7ff; }
.cms_media_dialog_actions { display:flex; justify-content:flex-end; gap:9px; padding:15px 23px 19px; border-top:1px solid var(--cms_line); }
.cms_media_detail_preview { display:grid; place-items:center; min-height:270px; max-height:410px; overflow:hidden; color:#7787a3; background:#eef2f7; }
.cms_media_detail_preview img,.cms_media_detail_preview video { width:100%; max-height:410px; object-fit:contain; }
.cms_media_detail_preview audio { width:min(500px,calc(100% - 42px)); }
.cms_media_detail_preview > .material-icons-outlined { font-size:50px; }
.cms_media_detail_form { display:grid; gap:15px; padding:20px 23px 23px; }
.cms_media_detail_meta { display:flex; flex-wrap:wrap; align-items:center; gap:7px; }
.cms_media_detail_meta > span:not(.cms_media_status) { padding:4px 7px; color:#677389; font-size:.57rem; border-radius:6px; background:#f0f2f6; }
.cms_media_detail_url { display:grid; grid-template-columns:minmax(0,1fr) auto; gap:7px; }
.cms_media_detail_url input { min-width:0; min-height:41px; padding:0 10px; color:#657187; font-family:ui-monospace,SFMono-Regular,Menlo,monospace; font-size:.58rem; border:1px solid #dfe3ea; border-radius:8px; background:#f8f9fb; }
.cms_media_detail_url button { display:inline-flex; align-items:center; gap:5px; min-height:41px; padding:0 12px; color:#4965bd; font-size:.63rem; font-weight:800; border:1px solid #d6dff6; border-radius:8px; background:#f4f7ff; cursor:pointer; }
.cms_media_detail_url button .material-icons-outlined { font-size:16px; }
.cms_media_detail_note { margin:-5px 0 0; color:var(--cms_muted); font-size:.58rem; }
.cms_media_detail_actions { display:flex; align-items:center; justify-content:space-between; gap:12px; margin-top:2px; padding-top:15px; border-top:1px solid var(--cms_line); }
.cms_media_delete { display:inline-flex; align-items:center; gap:5px; min-height:39px; padding:0 12px; color:#b54e5d; font-size:.64rem; font-weight:800; border:1px solid #efd4d8; border-radius:8px; background:#fff8f9; cursor:pointer; }
.cms_media_delete .material-icons-outlined { font-size:17px; }
.cms_media_delete:disabled,.cms_media_dialog button:disabled { opacity:.55; cursor:wait; }

@media (max-width:1100px) { .cms_media_grid { grid-template-columns:repeat(3,minmax(0,1fr)); } }
@media (max-width:760px) {
	.cms_media_grid { grid-template-columns:repeat(2,minmax(0,1fr)); gap:10px; }
	.cms_media_toolbar { align-items:stretch; flex-direction:column; }
	.cms_media_toolbar .cms_search { order:0; width:100%; }
	.cms_media_toolbar .cms_filters { overflow:auto; }
	.cms_media_period_fields { grid-template-columns:1fr; }
	.cms_media_preview { aspect-ratio:1; }
	.cms_media_card_body { padding:10px; }
	.cms_media_card_title { align-items:flex-start; flex-direction:column; }
	.cms_media_period strong { white-space:normal; }
	.cms_media_modal { padding:10px; }
	.cms_media_detail_preview { min-height:210px; }
}

.cms_modal_open { overflow: hidden; }
.cms_modal { position: fixed; inset: 0; z-index: 100; display: grid; place-items: center; padding: 24px; }
.cms_modal_backdrop { position: absolute; inset: 0; width: 100%; border: 0; background: rgba(12,20,36,.58); backdrop-filter: blur(3px); cursor: default; }
.cms_modal_card { position: relative; width: min(860px,100%); max-height: calc(100vh - 48px); overflow: auto; border-radius: 16px; background: #fff; box-shadow: 0 24px 70px rgba(12,20,36,.28); }
.cms_modal_head { display: flex; align-items: flex-start; justify-content: space-between; gap: 24px; padding: 24px 26px 19px; border-bottom: 1px solid var(--cms_line); }
.cms_modal_head h2 { font-size: 1.18rem; }
.cms_modal_head > button { display: grid; place-items: center; width: 36px; height: 36px; color: var(--cms_muted); border: 0; border-radius: 9px; background: var(--cms_bg); cursor: pointer; }
.cms_modal_fields { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 18px; padding: 25px 26px; }
.cms_news_conditional { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); grid-column: 1 / -1; gap: 18px; }
.cms_news_hint { justify-content: flex-end; padding: 9px 12px; border: 1px solid #e5e9f1; border-radius: 8px; background: #f8f9fc; }
.cms_news_hint p { margin: 2px 0 0; color: var(--cms_muted); font-size: .68rem; }
.cms_thumbnail_field { padding: 15px; border: 1px solid #dfe4ed; border-radius: 10px; background: #fafbfc; }
.cms_thumbnail_label { display: flex; flex-direction: column; margin-bottom: 12px; }
.cms_thumbnail_label strong { font-size: .74rem; }
.cms_thumbnail_label small { margin-top: 2px; color: var(--cms_muted); font-size: .63rem; }
.cms_thumbnail_content { display: grid; grid-template-columns: 190px 1fr; align-items: center; gap: 16px; }
.cms_thumbnail_preview { display: grid; place-items: center; width: 190px; aspect-ratio: 16/9; overflow: hidden; color: #9ca6b5; border: 1px dashed #ccd4e0; border-radius: 8px; background: #f1f3f7; }
.cms_thumbnail_preview img { width: 100%; height: 100%; object-fit: cover; }
.cms_thumbnail_preview .material-icons-outlined { font-size: 29px; }
.cms_thumbnail_preview p { margin-top: -32px; font-size: .61rem; }
.cms_menu_thumbnail_field .cms_thumbnail_preview { aspect-ratio: 4/5; }
.cms_guide_thumbnail_field .cms_thumbnail_content { grid-template-columns: minmax(300px,420px) 1fr; }
.cms_guide_thumbnail_field .cms_thumbnail_preview { width: 100%; aspect-ratio: 14/5; }
.cms_thumbnail_actions { display: flex; align-items: flex-start; flex-direction: column; }
.cms_admin_page .cms_thumbnail_actions > button { display: inline-flex; align-items: center; gap: 5px; min-height: 35px; margin-top: 7px; padding: 0 11px; color: #bd5260; font-size: .67rem; font-weight: 700; border: 1px solid #efd1d5; border-radius: 7px; background: #fff7f8; cursor: pointer; }
.cms_thumbnail_actions > button .material-icons-outlined { font-size: 16px; }
.cms_thumbnail_actions > small { margin-top: 8px; color: var(--cms_muted); font-size: .6rem; }
.cms_block_editor { grid-column: 1 / -1; overflow: hidden; border: 1px solid #dfe4ed; border-radius: 12px; background: #f7f8fb; }
.cms_block_editor_head { display: flex; align-items: center; justify-content: space-between; gap: 16px; padding: 17px 18px; border-bottom: 1px solid #e2e6ee; background: #fff; }
.cms_block_editor_head > div:first-child { display: flex; flex-direction: column; }
.cms_block_editor_head strong { font-size: .82rem; }
.cms_block_editor_head small { margin-top: 2px; color: var(--cms_muted); font-size: .64rem; }
.cms_add_block_menu { display: flex; flex-wrap: wrap; justify-content: flex-end; gap: 6px; }
.cms_admin_page .cms_add_block_menu button { display: inline-flex; align-items: center; gap: 4px; min-height: 33px; padding: 0 9px; color: #53647d; font-size: .66rem; font-weight: 700; border: 1px solid #dfe4ec; border-radius: 7px; background: #f8f9fc; cursor: pointer; }
.cms_add_block_menu button:hover { color: var(--cms_blue); border-color: #cbd7f7; background: #f1f5ff; }
.cms_add_block_menu .material-icons-outlined { font-size: 16px; }
.cms_editor_blocks { display: grid; gap: 10px; padding: 13px; }
.cms_editor_empty { padding: 35px 20px; color: var(--cms_muted); font-size: .72rem; text-align: center; }
.cms_editor_block { overflow: hidden; border: 1px solid #e0e4ec; border-radius: 9px; background: #fff; box-shadow: 0 2px 7px rgba(24,34,53,.025); }
.cms_block_controls { display: grid; grid-template-columns: 1fr repeat(3,29px); align-items: center; gap: 3px; min-height: 38px; padding: 4px 7px 4px 12px; border-bottom: 1px solid #edf0f4; background: #fafbfc; }
.cms_block_controls > span:first-child { color: #657087; font-size: .63rem; font-weight: 800; }
.cms_admin_page .cms_block_controls button { display: grid; place-items: center; width: 29px; height: 29px; padding: 0; color: #8a94a5; border: 0; border-radius: 6px; background: transparent; cursor: pointer; }
.cms_block_controls button:hover { color: #4d65ac; background: #eef2fa; }
.cms_block_controls button:last-child:hover { color: #c84b5b; background: #fff0f2; }
.cms_block_controls .material-icons-outlined { font-size: 16px; }
.cms_block_body { padding: 13px; }
.cms_block_body input, .cms_block_body textarea { width: 100%; padding: 10px 12px; color: var(--cms_text); font-size: .7rem; border: 1px solid #dfe3ea; border-radius: 8px; outline: 0; background: #fff; }
.cms_block_body textarea { min-height: 112px; resize: vertical; }
.cms_block_body .cms_block_title { font-size: .94rem; font-weight: 700; }
.cms_rich_text_toolbar { display: flex; flex-wrap: wrap; gap: 5px; padding: 7px; border: 1px solid #dfe3ea; border-bottom: 0; border-radius: 8px 8px 0 0; background: #f8f9fc; }
.cms_admin_page .cms_rich_text_toolbar button { display: inline-flex; align-items: center; gap: 3px; min-height: 30px; padding: 0 8px; color: #53647d; font-size: .64rem; font-weight: 700; border: 1px solid transparent; border-radius: 6px; background: transparent; cursor: pointer; }
.cms_admin_page .cms_rich_text_toolbar button:hover { color: #3f5db5; border-color: #d9e1f5; background: #fff; }
.cms_rich_text_toolbar .material-icons-outlined { font-size: 16px; }
.cms_rich_text_input { min-height: 125px; padding: 11px 12px; overflow-wrap: anywhere; color: var(--cms_text); font-size: .72rem; line-height: 1.8; border: 1px solid #dfe3ea; border-radius: 0 0 8px 8px; outline: 0; background: #fff; }
.cms_rich_text_input:focus { border-color: #91a8e8; box-shadow: 0 0 0 3px rgba(77,118,232,.1); }
.cms_rich_text_input:empty::before { color: #a0a8b5; content: attr(data-placeholder); pointer-events: none; }
/* Heading bands are scoped to the article editor; storefronts supply their own palette. */
.cms_rich_text_input :is(h1, h2, h3, h4) { box-sizing: border-box; margin: .8em 0 .5em; padding: .55em .7em; border-radius: 4px; font-weight: 700; line-height: 1.5; }
.cms_rich_text_input h1 { color: #fff; background: #17233c; font-size: 2em; }
.cms_rich_text_input h2 { color: #fff; background: #385a9e; font-size: 1.65em; }
.cms_rich_text_input h3 { color: #233e73; background: #e8eefb; font-size: 1.35em; }
.cms_rich_text_input h4 { color: #34435a; background: #eef1f5; font-size: 1.15em; }
.cms_rich_text_input ul,
.cms_rich_text_input ol { margin: .5em 0; padding-left: 1.7em; }
.cms_rich_text_input a { color: #4164c5; text-decoration: underline; }
.cms_block_two { display: grid; grid-template-columns: 1fr 1fr; gap: 10px; margin-top: 10px; }
.cms_block_image_preview { display: grid; place-items: center; min-height: 180px; overflow: hidden; color: #9ba5b5; border: 1px dashed #ced5e1; border-radius: 8px; background: #f5f7fa; }
.cms_block_image_preview img { width: 100%; max-height: 360px; object-fit: contain; }
.cms_block_image_preview .material-icons-outlined { font-size: 32px; }
.cms_block_image_preview p { margin-top: -55px; font-size: .68rem; }
.cms_image_picker { display: inline-flex; align-items: center; gap: 6px; min-height: 35px; margin-top: 10px; padding: 0 11px; vertical-align: top; color: #4563be; font-size: .67rem; font-weight: 700; border: 1px solid #d4ddf5; border-radius: 7px; background: #f5f8ff; cursor: pointer; }
.cms_image_picker input { position: absolute; width: 1px; height: 1px; opacity: 0; }
.cms_image_picker .material-icons-outlined { font-size: 17px; }
.cms_modal_actions { padding: 18px 26px 24px; border-top: 1px solid var(--cms_line); }
.cms_modal_primary_actions { display: flex; justify-content: flex-end; gap: 10px; }
.cms_delete_zone { display: flex; justify-content: flex-start; margin-top: 30px; padding-top: 18px; border-top: 1px dashed #e2e5eb; }
.cms_secondary_button, .cms_danger_button { min-height: 42px; padding: 0 16px; font-size: .78rem; font-weight: 700; border-radius: 9px; background: #fff; cursor: pointer; }
.cms_secondary_button { color: #657087; border: 1px solid var(--cms_line); }
.cms_sort_card { width: min(680px,100%); }
.cms_sort_help { margin: 0; padding: 17px 26px; color: var(--cms_muted); font-size: .7rem; border-bottom: 1px solid var(--cms_line); background: #fafbfc; }
.cms_sort_list { display: grid; gap: 9px; max-height: min(58vh,560px); overflow: auto; padding: 18px 26px; }
.cms_sort_item { display: grid; grid-template-columns: 28px 52px minmax(0,1fr) auto; align-items: center; gap: 11px; min-height: 68px; padding: 8px 10px; border: 1px solid #e0e5ed; border-radius: 10px; background: #fff; cursor: grab; transition: border-color .2s, box-shadow .2s, opacity .2s; }
.cms_sort_item:hover { border-color: #cbd7f3; box-shadow: 0 4px 14px rgba(31,49,91,.07); }
.cms_sort_item.is_dragging { opacity: .45; }
.cms_sort_handle { color: #9ba5b5; font-size: 22px; }
.cms_sort_visual { display: grid; place-items: center; width: 52px; height: 52px; overflow: hidden; color: #7080a0; border-radius: 9px; background: #f0f3f8; }
.cms_sort_visual img { width: 100%; height: 100%; object-fit: cover; }
.cms_sort_visual .material-icons-outlined { font-size: 23px; }
.cms_sort_text { min-width: 0; }
.cms_sort_text strong, .cms_sort_text small { display: block; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.cms_sort_text strong { color: var(--cms_text); font-size: .76rem; }
.cms_sort_text small { margin-top: 4px; color: var(--cms_muted); font-size: .61rem; }
.cms_sort_move { display: flex; gap: 4px; }
.cms_admin_page .cms_sort_move button { display: grid; place-items: center; width: 34px; height: 34px; padding: 0; color: #536ba9; border: 1px solid #dbe2f3; border-radius: 8px; background: #f7f9ff; cursor: pointer; }
.cms_admin_page .cms_sort_move button:disabled { color: #bcc3cf; border-color: #e8ebf0; background: #fafafa; cursor: default; }
.cms_sort_move .material-icons-outlined { font-size: 18px; }
.cms_sort_actions { display: flex; justify-content: flex-end; gap: 10px; padding: 18px 26px 24px; border-top: 1px solid var(--cms_line); }
.cms_profile_card { width: min(620px,100%); }
.cms_profile_fields { display: grid; gap: 24px; padding: 25px 26px; }
.cms_profile_avatar_edit { display: grid; grid-template-columns: 84px 1fr; align-items: center; gap: 18px; padding-bottom: 22px; border-bottom: 1px solid var(--cms_line); }
.cms_profile_avatar_edit small { display: block; margin-top: 7px; color: var(--cms_muted); font-size: .6rem; }
.cms_password_card { width: min(620px,100%); }
.cms_password_body { display: grid; gap: 22px; padding: 25px 26px; }
.cms_password_notice { display: grid; grid-template-columns: 26px minmax(0,1fr); gap: 11px; padding: 14px 15px; color: #40558a; border: 1px solid #d8e1f7; border-radius: 10px; background: #f4f7ff; }
.cms_password_notice > .material-icons-outlined { margin-top: 1px; color: #5273cf; font-size: 21px; }
.cms_password_notice strong { display: block; font-size: .72rem; }
.cms_password_notice p { margin-top: 3px; color: #64718d; font-size: .63rem; line-height: 1.65; }
.cms_password_fields { display: grid; gap: 17px; }
.cms_password_error { min-height: 0; color: #bd4c5d !important; }
.cms_password_error:empty { display: none; }
.cms_field input.is_invalid { border-color: #d66a78; box-shadow: 0 0 0 3px rgba(197,73,90,.09); }
.cms_password_result { display: flex; align-items: flex-start; gap: 8px; padding: 13px 14px; color: #47604e; font-size: .67rem; line-height: 1.7; border: 1px solid #d5e9dc; border-radius: 9px; background: #f4fbf6; }
.cms_password_result::before { flex: 0 0 auto; font-family: 'Material Icons Outlined'; font-size: 19px; content: 'check_circle'; }
.cms_danger_button { min-height: 36px; padding: 0 12px; color: #b76670; font-size: .68rem; border: 1px solid #efdadd; background: #fffafa; }
.cms_field select { width: 100%; min-height: 43px; padding: 0 38px 0 13px; color: var(--cms_text); font-size: .7rem; border: 1px solid #dfe3eb; border-radius: 8px; outline: 0; background: #fff; }
.cms_field select:focus { border-color: #7c98eb; box-shadow: 0 0 0 3px rgba(77,118,232,.1); }
.cms_month_day { min-width: 0; margin: 0; padding: 0; border: 0; }
.cms_month_day legend { margin-bottom: 7px; padding: 0; color: #4d586c; font-size: .68rem; font-weight: 600; }
.cms_month_day > div { display: grid; grid-template-columns: 1fr 1fr; gap: 8px; }
.cms_month_day small { color: var(--cms_muted); font-size: .62rem; }
.cms_cast_images_field { padding: 15px; border: 1px solid #dfe4ed; border-radius: 10px; background: #fafbfc; }
.cms_cast_image_list { display: grid; grid-template-columns: repeat(4,minmax(0,1fr)); gap: 10px; }
.cms_cast_image_item { overflow: hidden; border: 1px solid #dfe4ed; border-radius: 9px; background: #fff; }
.cms_cast_image_item > div:first-child { position: relative; aspect-ratio: 4/5; overflow: hidden; background: #eef1f5; }
.cms_cast_image_item img { width: 100%; height: 100%; object-fit: cover; }
.cms_cast_image_item > div:first-child span { position: absolute; top: 7px; left: 7px; padding: 3px 7px; color: #fff; font-size: .56rem; font-weight: 700; border-radius: 12px; background: var(--cms_blue); }
.cms_cast_image_item > div:last-child { display: flex; justify-content: center; gap: 3px; padding: 5px; }
.cms_admin_page .cms_cast_image_item button { display: grid; place-items: center; width: 29px; height: 29px; padding: 0; color: #758096; border: 0; border-radius: 6px; background: transparent; cursor: pointer; }
.cms_admin_page .cms_cast_image_item button:hover { background: #eef2fa; }
.cms_admin_page .cms_cast_image_item button:last-child { color: #c45a67; }
.cms_cast_image_item .material-icons-outlined { font-size: 16px; }
.cms_cast_images_empty { grid-column: 1 / -1; padding: 28px; color: var(--cms_muted); font-size: .68rem; text-align: center; border: 1px dashed #ccd4e0; border-radius: 8px; }
.cms_upload_note { display: block; margin-top: 8px; color: var(--cms_muted); font-size: .6rem; }
.cms_empty_state { padding: 48px 24px; color: var(--cms_muted); font-size: .82rem; text-align: center; }
.cms_cast_grid > .cms_empty_state { grid-column: 1 / -1; }
.cms_manage_grid > .cms_empty_state { grid-column: 1 / -1; }
.cms_banner_card .cms_manage_image { aspect-ratio: 16/9; }
.cms_guide_banner_grid { grid-template-columns: repeat(3,minmax(0,1fr)); }
.cms_guide_banner_card .cms_manage_image { aspect-ratio: 14/5; }
.cms_banner_card .cms_manage_body p { white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.cms_banner_groups { display: grid; gap: 24px; }
.cms_banner_tabs { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: 10px; padding: 8px; border: 1px solid var(--cms_line); border-radius: 13px; background: #fff; }
.cms_banner_tabs button { display: grid; grid-template-columns: 34px 1fr auto; align-items: center; gap: 10px; min-height: 66px; padding: 8px 13px; color: #657087; text-align: left; border: 1px solid transparent; border-radius: 9px; background: transparent; cursor: pointer; }
.cms_banner_tabs button:hover { background: #f7f9fd; }
.cms_banner_tabs button.is_active { color: #365cc0; border-color: #d9e2fa; background: #eef3ff; }
.cms_banner_tabs button > .material-icons-outlined { font-size: 22px; }
.cms_banner_tabs button > span { display: flex; min-width: 0; flex-direction: column; }
.cms_banner_tabs strong { font-size: .73rem; }
.cms_banner_tabs small { margin-top: 2px; color: var(--cms_muted); font-size: .59rem; }
.cms_banner_tabs em { display: grid; place-items: center; min-width: 25px; height: 25px; padding: 0 7px; font-size: .6rem; font-style: normal; font-weight: 800; border-radius: 15px; background: #fff; }
.cms_banner_group { padding: 24px; border: 1px solid var(--cms_line); border-radius: 14px; background: #fff; }
.cms_banner_group_head { display: flex; align-items: center; justify-content: space-between; gap: 18px; }
.cms_banner_group_head span { color: var(--cms_blue); font-size: .58rem; font-weight: 800; letter-spacing: .14em; }
.cms_banner_group_head h2 { margin-top: 2px; font-size: 1rem; }
.cms_banner_group_head em { padding: 5px 10px; color: #4b64ad; font-size: .62rem; font-style: normal; font-weight: 800; border-radius: 20px; background: var(--cms_blue_soft); }
.cms_banner_group_actions { display: flex; align-items: center; gap: 8px; }
.cms_banner_group_actions .cms_secondary_button,
.cms_banner_group_actions .cms_primary_button { min-height: 36px; padding-inline: 12px; font-size: .66rem; }
.cms_banner_group_actions .material-icons-outlined { font-size: 16px; }
.cms_banner_group > p { margin: 5px 0 18px; color: var(--cms_muted); font-size: .67rem; }
.cms_recruit_block_card { display: grid; grid-template-columns: minmax(280px,.8fr) minmax(0,1.3fr); align-items: center; gap: 22px; padding: 16px; border: 1px solid #e1e6ef; border-radius: 12px; background: #fafbfc; }
.cms_recruit_block_preview { display: grid; place-items: center; width: 100%; aspect-ratio: 20/7; overflow: hidden; color: #98a3b3; border: 1px dashed #ccd4e0; border-radius: 12px; background: #f0f3f7; }
.cms_recruit_block_preview img { width: 100%; height: 100%; object-fit: cover; }
.cms_recruit_block_preview .material-icons-outlined { font-size: 32px; }
.cms_recruit_block_copy > div { display: flex; align-items: center; gap: 7px; }
.cms_recruit_block_copy h3 { margin-top: 10px; font-size: .92rem; line-height: 1.6; }
.cms_recruit_block_copy p { margin-top: 5px; color: var(--cms_muted); font-size: .7rem; font-weight: 400; line-height: 1.75; white-space: pre-line; }
.cms_admin_page .cms_recruit_block_copy button { display: inline-flex; align-items: center; gap: 5px; min-height: 36px; margin-top: 14px; padding: 0 12px; color: #4563be; font-size: .68rem; font-weight: 700; border: 1px solid #d4ddf5; border-radius: 8px; background: #f5f8ff; cursor: pointer; }
.cms_recruit_block_copy button .material-icons-outlined { font-size: 17px; }
.cms_recruit_thumbnail_field .cms_thumbnail_preview { border-radius: 12px; }
.cms_concept_editor { display: grid; gap: 16px; margin: 0 0 22px; padding: 18px; border: 1px solid #dce4f7; border-radius: 11px; background: #f8faff; }
.cms_concept_editor > label,
.cms_concept_music_fields > label { display: grid; gap: 5px; }
.cms_concept_editor strong { font-size: .74rem; }
.cms_concept_editor small,
.cms_concept_images_head small { color: var(--cms_muted); font-size: .62rem; }
.cms_concept_editor textarea,
.cms_concept_editor input:not([type="file"]):not([type="hidden"]) { width: 100%; padding: 12px 13px; color: var(--cms_text); font: inherit; font-size: .72rem; line-height: 1.75; border: 1px solid var(--cms_line); border-radius: 8px; background: #fff; outline: none; }
.cms_concept_editor textarea { min-height: 132px; resize: vertical; }
.cms_concept_editor textarea:focus,
.cms_concept_editor input:not([type="file"]):not([type="hidden"]):focus { border-color: var(--cms_blue); box-shadow: 0 0 0 3px rgba(75, 108, 203, .12); }
.cms_concept_editor > .cms_primary_button { justify-self: end; min-height: 40px; white-space: nowrap; }
.cms_concept_music_fields { display: grid; grid-template-columns: minmax(220px, .75fr) minmax(0, 1.25fr); gap: 14px; padding-top: 2px; }
.cms_concept_audio_field { display: grid; gap: 6px; }
.cms_concept_audio_preview { display: grid; min-height: 54px; align-items: center; }
.cms_concept_audio_preview audio { width: 100%; height: 42px; }
.cms_concept_audio_preview p { display: grid; min-height: 42px; place-items: center; color: var(--cms_muted); font-size: .65rem; border: 1px dashed var(--cms_line); border-radius: 8px; background: #fff; }
.cms_concept_audio_local { display:flex; flex-wrap:wrap; align-items:center; gap:10px; min-height:42px; padding:7px 10px; border:1px solid var(--cms_line); border-radius:8px; background:#fff; }
.cms_concept_audio_local button,.cms_concept_audio_saved { display:inline-flex; align-items:center; justify-content:center; gap:6px; min-height:34px; padding:7px 12px; color:#3558bd; font:inherit; font-size:.68rem; font-weight:800; text-decoration:none; border:1px solid #cbd7f7; border-radius:7px; background:#f2f6ff; cursor:pointer; }
.cms_concept_audio_local button:disabled { color:var(--cms_muted); cursor:wait; opacity:.75; }
.cms_concept_audio_local small { margin-left:auto; white-space:nowrap; }
.cms_concept_audio_saved { width:100%; min-height:42px; }
.cms_concept_audio_actions { display: flex; flex-wrap: wrap; align-items: center; gap: 8px; }
.cms_concept_audio_actions .cms_avatar_remove { min-height: 34px; }
.cms_concept_images_head { display: flex; align-items: center; justify-content: space-between; gap: 16px; margin: 0 0 12px; padding-top: 2px; }
.cms_concept_images_head > div { display: grid; gap: 3px; }
.cms_concept_images_head strong { font-size: .78rem; }
.cms_concept_images_head em { padding: 5px 10px; color: #4b64ad; font-size: .62rem; font-style: normal; font-weight: 800; border-radius: 20px; background: var(--cms_blue_soft); }
.cms_banner_slot_note { display: flex; align-items: center; gap: 11px; padding: 13px 15px; border: 1px solid #dce4f7; border-radius: 9px; background: #f5f8ff; }
.cms_banner_slot_note > .material-icons-outlined { color: #5775cf; }
.cms_banner_slot_note strong { display: block; font-size: .74rem; }
.cms_banner_slot_note p { margin: 2px 0 0; color: var(--cms_muted); font-size: .63rem; }
.cms_saved_state.is_dirty { color: #d88b35; background: #fff5e8; }

/* SNS auto posting */
.cms_sns_panel { max-width: 1540px; }
.cms_sns_page_head { display: flex; align-items: center; justify-content: space-between; gap: 24px; margin-bottom: 18px; }
.cms_sns_page_head h1 { color: #1c2638; font-size: clamp(1.7rem,2.5vw,2.12rem); line-height: 1.35; }
.cms_sns_page_head p:not(.cms_eyebrow) { margin-top: 6px; color: var(--cms_muted); font-size: .82rem; }
.cms_sns_connection { display: inline-flex; align-items: center; gap: 7px; padding: 8px 13px; color: #768195; font-size: .68rem; font-weight: 800; border: 1px solid var(--cms_line); border-radius: 22px; background: #fff; }
.cms_sns_connection i { width: 9px; height: 9px; border-radius: 50%; background: #aab2c0; }
.cms_sns_connection.is_connected { color: #2e7654; }
.cms_sns_connection.is_connected i { background: #2eb66f; box-shadow: 0 0 0 4px #e7f8ee; }
.cms_sns_summary { display: grid; grid-template-columns: repeat(6,minmax(0,1fr)); overflow: hidden; border: 1px solid var(--cms_line); border-radius: 13px; background: #fff; box-shadow: 0 3px 12px rgba(28,39,61,.025); }
.cms_sns_summary article { position: relative; display: grid; grid-template-columns: 34px minmax(0,1fr); align-items: center; gap: 9px; min-height: 66px; padding: 12px 14px; border-right: 1px solid #edf0f4; background: #fff; }
.cms_sns_summary article:last-child { border-right: 0; }
.cms_sns_summary article > span { display: grid; place-items: center; width: 34px; height: 34px; color: #4d76e8; border-radius: 10px; background: #edf2ff; }
.cms_sns_summary article:nth-child(2) > span { color: #9a6bc4; background: #f6effc; }
.cms_sns_summary article:nth-child(3) > span { color: #4d76e8; background: #edf2ff; }
.cms_sns_summary article:nth-child(4) > span { color: #2ba969; background: #eaf8f0; }
.cms_sns_summary article:nth-child(5) > span { color: #e35353; background: #fff0f0; }
.cms_sns_summary article:nth-child(6) > span { color: #e3913f; background: #fff4e8; }
.cms_sns_summary .material-icons-outlined { font-size: 19px; }
.cms_sns_summary small { display: block; overflow: hidden; color: var(--cms_muted); font-size: .59rem; font-weight: 700; text-overflow: ellipsis; white-space: nowrap; }
.cms_sns_summary strong { display: block; margin-top: -1px; font-size: 1rem; }
.cms_sns_tabs { display: inline-grid; grid-template-columns: repeat(4,auto); gap: 5px; margin: 15px 0; padding: 5px; border: 1px solid var(--cms_line); border-radius: 11px; background: #fff; box-shadow: 0 2px 8px rgba(28,39,61,.025); }
.cms_sns_tabs button { display: inline-flex; position: relative; align-items: center; justify-content: center; gap: 6px; min-height: 38px; padding: 0 16px; color: #737e91; font-size: .66rem; font-weight: 800; border: 0; border-radius: 8px; background: transparent; cursor: pointer; }
.cms_sns_tabs button .material-icons-outlined { font-size: 17px; }
.cms_sns_tabs button.is_active { color: #3159c5; background: #edf2ff; box-shadow: inset 0 0 0 1px #dbe4ff; }
.cms_sns_view { animation: cms_fade .22s ease; }
.cms_sns_create_grid { display: grid; grid-template-columns: minmax(0,1.55fr) minmax(300px,.68fr); align-items: start; gap: 16px; }
.cms_sns_card { overflow: hidden; border: 1px solid var(--cms_line); border-radius: 14px; background: #fff; box-shadow: 0 3px 12px rgba(28,39,61,.025); }
.cms_sns_card_head { display: flex; align-items: center; justify-content: space-between; gap: 18px; min-height: 70px; padding: 14px 20px; border-bottom: 1px solid #edf0f4; }
.cms_sns_card_head h2 { font-size: .96rem; }
.cms_sns_card_head p { margin-top: 3px; color: var(--cms_muted); font-size: .64rem; }
.cms_sns_card_kicker { margin: 0 0 1px !important; color: #5976cd !important; font-size: .52rem !important; font-weight: 800; letter-spacing: .14em; }
.cms_sns_preview_live { display: inline-flex; align-items: center; gap: 6px; padding: 5px 9px; color: #5673c7; font-size: .55rem; font-weight: 800; border-radius: 99px; background: #eef3ff; }
.cms_sns_preview_live i { width: 6px; height: 6px; border-radius: 50%; background: #5f7ee0; box-shadow: 0 0 0 3px #dfe7ff; }
.cms_sns_card_head > button:not(.cms_primary_button) { padding: 0; color: var(--cms_blue); font-size: .66rem; font-weight: 800; border: 0; background: transparent; cursor: pointer; }
.cms_sns_form_body { display: grid; gap: 0; padding: 0 20px; }
.cms_sns_composer_section { padding: 17px 0; border-bottom: 1px solid #edf0f4; }
.cms_sns_composer_section:last-child { border-bottom: 0; }
.cms_sns_composer_section.is_source { display: grid; grid-template-columns: auto minmax(220px,1fr); align-items: end; gap: 18px; }
.cms_sns_composer_section.is_timing { display: grid; grid-template-columns: auto minmax(260px,.8fr); align-items: end; gap: 18px; }
.cms_sns_section_title { display: flex; align-items: center; gap: 9px; margin-bottom: 13px; color: #3d485c; }
.cms_sns_section_title > span,
.cms_sns_fieldset legend > span { display: inline-grid; place-items: center; width: 22px; height: 22px; margin-right: 7px; color: #4768c7; font-size: .58rem; font-weight: 900; border-radius: 50%; background: #edf2ff; }
.cms_sns_section_title div { display: grid; gap: 1px; }
.cms_sns_section_title strong { font-size: .69rem; }
.cms_sns_section_title small,
.cms_sns_fieldset legend small { color: #9aa4b6; font-size: .55rem; font-weight: 600; }
.cms_sns_fieldset { min-width: 0; margin: 0; padding: 0; border: 0; }
.cms_sns_fieldset legend,
.cms_sns_source_select > span,
.cms_sns_text_field > span,
.cms_sns_upload > strong,
.cms_sns_schedule_fields label > span { display: flex; align-items: center; margin-bottom: 7px; color: #4d586c; font-size: .66rem; font-weight: 800; }
.cms_sns_choice_row { display: flex; flex-wrap: wrap; gap: 8px; }
.cms_sns_choice_row label { cursor: pointer; }
.cms_sns_choice_row input { position: absolute; opacity: 0; pointer-events: none; }
.cms_sns_choice_row label > span { display: inline-flex; align-items: center; justify-content: center; gap: 6px; min-height: 36px; padding: 0 14px; color: #657087; font-size: .65rem; font-weight: 700; border: 1px solid #dfe4ed; border-radius: 8px; background: #fff; }
.cms_sns_choice_row input:checked + span { color: #3f66d2; border-color: #7592e8; background: #f7f9ff; box-shadow: 0 0 0 2px rgba(77,118,232,.07); }
.cms_sns_choice_row .material-icons-outlined { font-size: 16px; }
.cms_sns_source_select select,
.cms_sns_schedule_fields input,
.cms_sns_history_filters input,
.cms_sns_history_filters select { width: 100%; min-height: 40px; padding: 0 12px; color: #354056; font-size: .68rem; border: 1px solid #dfe4ed; border-radius: 8px; background: #fff; outline: 0; }
.cms_sns_platforms { display: grid; grid-template-columns: repeat(4,minmax(0,1fr)); gap: 7px; }
.cms_sns_platform { cursor: pointer; }
.cms_sns_platform input { position: absolute; opacity: 0; }
.cms_sns_platform > span { display: flex; align-items: center; gap: 7px; min-height: 38px; padding: 0 10px; color: #5f6a7f; font-size: .61rem; font-weight: 700; border: 1px solid #dfe4ed; border-radius: 8px; }
.cms_sns_platform input:checked + span { color: #3159c5; border-color: #7995ea; background: #f5f8ff; }
.cms_sns_platform img,
.cms_sns_platform_icon { width: 17px; height: 17px; object-fit: contain; }
.cms_sns_content_fields { display: grid; grid-template-columns: minmax(0,1fr) 190px; gap: 14px; }
.cms_sns_text_stack { display: grid; gap: 12px; min-width: 0; }
.cms_sns_text_field { position: relative; }
.cms_sns_text_field textarea { width: 100%; min-height: 145px; padding: 12px 13px 28px; resize: vertical; color: #303b50; font-size: .7rem; line-height: 1.7; border: 1px solid #dfe4ed; border-radius: 9px; outline: 0; }
.cms_sns_text_field.is_extended textarea { min-height: 112px; }
.cms_sns_text_field.is_hashtags textarea { min-height: 78px; }
.cms_sns_text_field textarea:focus,
.cms_sns_source_select select:focus,
.cms_sns_schedule_fields input:focus { border-color: #7792e8; box-shadow: 0 0 0 3px rgba(77,118,232,.09); }
.cms_sns_text_field small { position: absolute; right: 11px; bottom: 8px; color: #9aa4b6; font-size: .58rem; }
.cms_sns_text_field small b { font-weight: 600; }
.cms_sns_upload { min-width: 0; }
.cms_sns_upload strong small { color: #9aa4b6; font-size: .55rem; font-weight: 600; }
.cms_sns_upload_preview { display: grid; grid-template-columns: repeat(2,1fr); gap: 5px; min-height: 160px; margin-bottom: 8px; padding: 6px; border: 1px dashed #bdc9df; border-radius: 10px; background: #f8faff; }
.cms_sns_upload_preview:empty::before { display: grid; grid-column: 1 / -1; place-items: center; color: #a2acbc; font-family: "Material Icons Outlined"; font-size: 25px; content: "image"; }
.cms_sns_upload_preview > span { position: relative; display: grid; align-content: center; min-width: 0; min-height: 65px; overflow: hidden; border-radius: 6px; background: #edf0f5; }
.cms_sns_upload_preview > span:only-child { grid-column: 1 / -1; }
.cms_sns_upload_preview img { display: block; width: 100%; height: auto; max-height: 240px; object-fit: contain; }
.cms_sns_upload_preview button { position: absolute; top: 3px; right: 3px; display: grid; place-items: center; width: 22px; height: 22px; padding: 0; color: #fff; border: 0; border-radius: 50%; background: rgba(24,34,53,.72); cursor: pointer; }
.cms_sns_upload_preview button .material-icons-outlined { font-size: 14px; }
.cms_sns_upload > label { display: flex; align-items: center; justify-content: center; gap: 6px; min-height: 38px; color: #4766bc; font-size: .62rem; font-weight: 800; border: 1px solid #d4def6; border-radius: 8px; background: #f5f8ff; cursor: pointer; }
.cms_sns_upload > label input { display: none; }
.cms_sns_upload > label .material-icons-outlined { font-size: 17px; }
.cms_sns_upload > small { display: block; margin-top: 5px; color: #9aa4b6; font-size: .55rem; }
.cms_sns_schedule_fields { display: grid; grid-template-columns: 1fr 1fr; gap: 10px; }
.cms_sns_form_actions { display: flex; justify-content: flex-end; gap: 9px; padding: 14px 20px 18px; border-top: 1px solid #edf0f4; background: #fbfcfe; }
.cms_admin_page .cms_secondary_button { min-height: 40px; padding: 0 15px; color: #46536a; font-size: .7rem; font-weight: 800; border: 1px solid #dfe4ed; border-radius: 8px; background: #fff; cursor: pointer; }
.cms_sns_preview { position: sticky; top: 24px; }
.cms_sns_preview > div:last-child { padding: 14px; }
.cms_sns_preview_post { overflow: hidden; border: 1px solid #e1e5ed; border-radius: 11px; }
.cms_sns_preview_profile { display: grid; grid-template-columns: 36px 1fr auto; align-items: center; gap: 9px; padding: 13px; }
.cms_sns_preview_avatar { display: grid; place-items: center; width: 36px; height: 36px; overflow: hidden; color: #fff; font-size: .58rem; font-weight: 800; border-radius: 50%; background: var(--cms_navy); }
.cms_sns_preview_avatar img { width: 100%; height: 100%; object-fit: cover; }
.cms_sns_preview_profile strong { display: block; font-size: .72rem; }
.cms_sns_preview_profile small { color: var(--cms_muted); font-size: .57rem; }
.cms_sns_preview_profile > span:last-child { font-size: 1.15rem; font-weight: 800; }
.cms_sns_preview_copy { min-height: 76px; padding: 0 13px 13px; color: #3a4558; font-size: .68rem; line-height: 1.7; white-space: pre-wrap; }
.cms_sns_preview_images { display: grid; grid-template-columns: repeat(2,1fr); gap: 2px; background: #edf0f4; }
.cms_sns_preview_images img { display: block; width: 100%; min-width: 0; height: 150px; object-fit: contain; }
.cms_sns_preview_images img:only-child { grid-column: 1 / -1; height: auto; max-height: 480px; }
.cms_sns_preview_empty { display: grid; place-items: center; min-height: 235px; color: #aab2c0; background: #f2f4f8; }
.cms_sns_preview_empty .material-icons-outlined { font-size: 46px; }
.cms_sns_preview_meta { display: flex; align-items: center; justify-content: space-between; padding: 11px 13px; color: #8590a4; font-size: .57rem; border-top: 1px solid #edf0f4; }
.cms_sns_preview_meta span:last-child { display: flex; gap: 18px; }
.cms_sns_preview_meta .material-icons-outlined { font-size: 17px; }
.cms_sns_recent { margin-top: 16px; }
.cms_sns_list_empty { display: grid; place-items: center; min-height: 110px; padding: 18px; color: #929caf; font-size: .68rem; text-align: center; }
.cms_sns_post_list { padding: 0 18px 12px; }
.cms_sns_post_row { display: grid; grid-template-columns: minmax(0,1.4fr) minmax(130px,.55fr) minmax(145px,.65fr) 90px max-content; align-items: center; gap: 12px; min-height: 66px; border-bottom: 1px solid #edf0f4; }
.cms_sns_post_row:last-child { border-bottom: 0; }
.cms_sns_post_copy { display: grid; grid-template-columns: 46px minmax(0,1fr); align-items: center; gap: 10px; min-width: 0; }
.cms_sns_post_copy > span { display: grid; place-items: center; width: 46px; height: 40px; overflow: hidden; color: #a2acbc; border-radius: 6px; background: #f0f2f6; }
.cms_sns_post_copy img { width: 100%; height: 100%; object-fit: contain; }
.cms_sns_post_copy strong { display: block; overflow: hidden; font-size: .67rem; text-overflow: ellipsis; white-space: nowrap; }
.cms_sns_post_copy small { display: block; overflow: hidden; margin-top: 2px; color: var(--cms_muted); font-size: .57rem; text-overflow: ellipsis; white-space: nowrap; }
.cms_sns_platform_list { display: flex; flex-wrap: wrap; gap: 6px; }
.cms_sns_platform_list img { width: 16px; height: 16px; object-fit: contain; }
.cms_sns_delivery_results { display: grid; gap: 6px; padding: 10px 0; font-size: 12px; }
.cms_sns_delivery_item > span, .cms_sns_delivery_item > a { display: flex; align-items: center; gap: 4px; }
.cms_sns_delivery_item img { width: 16px; height: 16px; object-fit: contain; }
.cms_sns_delivery_item small { display: block; color: #b42318; overflow-wrap: anywhere; }
.cms_sns_results_refresh { display: flex; flex-wrap: wrap; gap: 8px 14px; align-items: center; margin-bottom: 16px; font-size: 12px; color: #8793a8; }
.cms_sns_results_refresh button { appearance: none; display: inline-flex; align-items: center; justify-content: center; gap: 7px; min-height: 38px; padding: 8px 14px; border: 1px solid #dce4f4; border-radius: 10px; background: #fff; color: #526bc0; font: inherit; font-weight: 700; line-height: 1.5; cursor: pointer; box-shadow: 0 2px 4px rgba(33,54,100,.03); transition: background .15s, border-color .15s, box-shadow .15s; }
.cms_sns_results_refresh button::before { content: 'refresh'; font-family: 'Material Icons Outlined'; font-size: 18px; font-weight: normal; line-height: 1; }
.cms_sns_results_refresh button:hover:not(:disabled) { background: #eef3ff; border-color: #b9c9ef; }
.cms_sns_results_refresh button:focus-visible { outline: 3px solid #a8bfff; outline-offset: 3px; }
.cms_sns_results_refresh button:disabled { opacity: .65; cursor: progress; }
.cms_sns_results_refresh button[aria-busy="true"]::before { animation: cms_results_spin 1s linear infinite; }
.cms_sns_results_refresh > span { line-height: 1.6; font-variant-numeric: tabular-nums; }
@keyframes cms_results_spin { to { transform: rotate(360deg); } }
@media (prefers-reduced-motion: reduce) { .cms_sns_results_refresh button[aria-busy="true"]::before { animation: none; } }
.cms_sns_post_date { color: #59657a; font-size: .62rem; }
.cms_sns_badge { display: inline-flex; align-items: center; justify-content: center; min-height: 24px; padding: 0 9px; font-size: .58rem; font-weight: 800; border-radius: 15px; }
.cms_sns_badge.is_scheduled { color: #3f68db; background: #edf2ff; }
.cms_sns_badge.is_url_request { color: #4f69bd; background: #eef2ff; }
.cms_sns_badge.is_approval { color: #7b55a6; background: #f5eefb; }
.cms_sns_badge.is_posted { color: #26905a; background: #e9f8ef; }
.cms_sns_badge.is_failed { color: #d44343; background: #ffeded; }
.cms_sns_badge.is_draft { color: #697487; background: #eef0f4; }
.cms_sns_row_actions { display: flex; align-items: center; justify-content: flex-end; gap: 6px; }
.cms_sns_row_actions button { display: inline-flex; flex-shrink: 0; align-items: center; justify-content: center; gap: 4px; min-height: 31px; padding: 0 9px; color: #52617a; font-size: .58rem; font-weight: 800; white-space: nowrap; border: 1px solid #dfe4ed; border-radius: 7px; background: #fff; cursor: pointer; }
.cms_sns_row_actions button.is_retry { color: #3d66d5; border-color: #b9c8f3; }
.cms_sns_row_actions .material-icons-outlined { font-size: 15px; }
.cms_sns_calendar_layout { display: grid; grid-template-columns: minmax(0,1.7fr) minmax(300px,.7fr); gap: 16px; }
.cms_sns_calendar_head { display: grid; grid-template-columns: 1fr auto 1fr; align-items: center; gap: 12px; min-height: 76px; padding: 14px 18px; border-bottom: 1px solid #edf0f4; }
.cms_sns_calendar_head h2 { font-size: .96rem; }
.cms_sns_calendar_head > div { display: flex; align-items: center; gap: 13px; }
.cms_sns_calendar_head button { display: grid; place-items: center; width: 34px; height: 34px; padding: 0; color: #536178; border: 1px solid #dfe4ed; border-radius: 8px; background: #fff; cursor: pointer; }
.cms_sns_calendar_head > button:last-child { justify-self: end; width: auto; padding: 0 13px; font-size: .64rem; font-weight: 800; }
.cms_sns_calendar_head strong { min-width: 92px; font-size: .83rem; text-align: center; }
.cms_sns_calendar { display: grid; grid-template-columns: repeat(7,minmax(0,1fr)); width: 100%; padding: 0 14px 16px; }
.cms_sns_calendar_weekday { display: grid; place-items: center; min-height: 38px; color: #59657a; font-size: .61rem; font-weight: 800; border-bottom: 1px solid #e6eaf0; }
.cms_sns_calendar_weekday:first-child { color: #e04d4d; }
.cms_sns_calendar_weekday:nth-child(7) { color: #3970dc; }
.cms_sns_calendar_day { min-width: 0; min-height: 112px; overflow: hidden; padding: 7px; text-align: left; border: 0; border-right: 1px solid #edf0f4; border-bottom: 1px solid #edf0f4; background: #fff; cursor: pointer; }
.cms_sns_calendar_day:nth-child(7n+1) { border-left: 1px solid #edf0f4; }
.cms_sns_calendar_day.is_outside { color: #c0c6d0; background: #fafbfc; }
.cms_sns_calendar_day.is_selected { background: #f5f8ff; box-shadow: inset 0 0 0 2px #8da6eb; }
.cms_sns_calendar_day > strong { font-size: .62rem; }
.cms_sns_calendar_day.is_sunday > strong { color: #e04d4d; }
.cms_sns_calendar_day.is_saturday > strong { color: #3970dc; }
.cms_sns_calendar_mobile_label { display: none; }
.cms_sns_calendar_event { display: block; width: 100%; min-width: 0; max-width: 100%; overflow: hidden; margin-top: 5px; padding: 4px 5px; color: #3e4b62; font-size: .52rem; font-weight: 700; text-overflow: ellipsis; white-space: nowrap; border: 1px solid #dce4f6; border-radius: 5px; background: #fff; }
.cms_sns_calendar_event.is_draft { color: #97a0b0; border-style: dashed; border-color: #cdd4e0; background: #f6f7f9; }
.cms_sns_summary article[data-sns-summary-filter] { cursor: pointer; transition: box-shadow .15s ease, transform .15s ease; }
.cms_sns_summary article[data-sns-summary-filter]:hover { box-shadow: 0 5px 16px rgba(28,39,61,.08); transform: translateY(-1px); }
.cms_sns_summary article[data-sns-summary-filter]:focus-visible { outline: 2px solid #7995ea; outline-offset: 2px; }
.cms_sns_platform.is_disabled { cursor: not-allowed; }
.cms_sns_platform.is_disabled > span { opacity: .5; }
.cms_sns_platform_note { margin-left: 4px; padding: 1px 5px; color: #9aa3b2; font-size: .52rem; font-style: normal; border: 1px solid #dfe4ed; border-radius: 999px; }
.cms_sns_target_usage:empty { display: none; }
.cms_sns_target_usage { margin: 8px 0 0; color: #6b7688; font-size: .6rem; font-weight: 700; line-height: 1.5; }
.cms_sns_text_check:empty { display: none; }
.cms_sns_text_check { display: flex; flex-wrap: wrap; align-items: center; gap: 6px 10px; margin: 4px 0 0; }
.cms_sns_text_check_label { color: var(--cms_muted); font-size: .6rem; font-weight: 700; }
.cms_sns_text_check_item { color: #5f6a7f; font-size: .6rem; font-weight: 700; }
.cms_sns_text_check_item b { color: #2ba969; }
.cms_sns_text_check_item.is_over { color: #e35353; }
.cms_sns_text_check_item.is_over b { color: #e35353; }
/* Composer hashtag picker */
.cms_sns_hashtag_picker { margin-top: 8px; padding: 10px; border: 1px solid #e6eaf1; border-radius: 10px; background: #fafbfd; }
.cms_sns_hashtag_bar { display: flex; flex-wrap: wrap; align-items: center; gap: 8px; margin-bottom: 8px; }
.cms_sns_hashtag_label { color: var(--cms_muted); font-size: .6rem; font-weight: 700; }
.cms_sns_hashtag_bar select { min-height: 32px; padding: 0 8px; font-size: .62rem; border: 1px solid #dfe4ed; border-radius: 7px; background: #fff; }
.cms_sns_hashtag_random { display: inline-flex; align-items: center; gap: 6px; margin-left: auto; }
.cms_sns_hashtag_random input { width: 52px; min-height: 32px; padding: 0 6px; font-size: .62rem; border: 1px solid #dfe4ed; border-radius: 7px; }
.cms_sns_hashtag_random_btn { display: inline-flex; align-items: center; gap: 4px; min-height: 32px; padding: 0 10px; color: #3159c5; font-size: .62rem; font-weight: 700; border: 1px solid #7995ea; border-radius: 7px; background: #f5f8ff; cursor: pointer; }
.cms_sns_hashtag_random_btn .material-icons-outlined { font-size: 16px; }
.cms_sns_hashtag_chiplist { display: flex; flex-wrap: wrap; gap: 6px; }
.cms_sns_hashtag_tag { padding: 4px 10px; color: #3e4b62; font-size: .62rem; font-weight: 700; border: 1px solid #dce4f6; border-radius: 999px; background: #fff; cursor: pointer; }
.cms_sns_hashtag_tag:hover { border-color: #7995ea; background: #f5f8ff; }
.cms_sns_hashtag_empty { color: var(--cms_muted); font-size: .6rem; }
/* Settings hashtag groups editor */
.cms_hashtags_list { display: grid; gap: 12px; margin-bottom: 12px; }
.cms_hashtags_empty { color: var(--cms_muted); font-size: .68rem; padding: 12px 0; }
[data-hashtags-add-group] { display: inline-flex; align-items: center; gap: 5px; }
[data-hashtags-add-group] .material-icons-outlined { font-size: inherit; line-height: 1; }
.cms_hashtag_group { padding: 12px; border: 1px solid var(--cms_line); border-radius: 11px; background: #fff; }
.cms_hashtag_group_head { display: flex; align-items: center; gap: 10px; margin-bottom: 10px; }
.cms_hashtag_group_name { flex: 1; min-height: 36px; padding: 0 10px; font-size: .72rem; font-weight: 700; border: 1px solid #dfe4ed; border-radius: 8px; }
.cms_hashtag_group_delete { display: inline-flex; align-items: center; gap: 4px; color: #e35353; font-size: .62rem; font-weight: 700; border: 0; background: none; cursor: pointer; }
.cms_hashtag_group_delete .material-icons-outlined { font-size: 16px; }
.cms_hashtag_chips { display: flex; flex-wrap: wrap; gap: 6px; margin-bottom: 10px; }
.cms_hashtag_chip { display: inline-flex; align-items: center; gap: 4px; padding: 4px 6px 4px 10px; color: #3e4b62; font-size: .62rem; font-weight: 700; border: 1px solid #dce4f6; border-radius: 999px; background: #f7f9fd; }
.cms_hashtag_chip button { display: inline-flex; color: #9aa3b2; border: 0; background: none; cursor: pointer; padding: 0; }
.cms_hashtag_chip .material-icons-outlined { font-size: 14px; }
.cms_hashtags_hint { color: var(--cms_muted); font-size: .6rem; }
.cms_hashtag_add { display: flex; gap: 8px; }
.cms_hashtag_add input { flex: 1; min-height: 36px; padding: 0 10px; font-size: .68rem; border: 1px solid #dfe4ed; border-radius: 8px; }
.cms_sns_day_panel > div:last-child { padding: 8px 16px 18px; }
.cms_sns_day_panel .cms_sns_post_row { grid-template-columns: minmax(0,1fr) auto; align-items: start; padding: 10px 0; }
.cms_sns_day_panel .cms_sns_post_copy { grid-column: 1 / -1; }
.cms_sns_day_panel .cms_sns_platform_list,
.cms_sns_day_panel .cms_sns_post_date { display: none; }
.cms_sns_history_filters { display: grid; grid-template-columns: minmax(220px,1fr) 190px 210px; gap: 10px; padding: 16px 20px; border-bottom: 1px solid #edf0f4; }
.cms_sns_history_filters label { position: relative; }
.cms_sns_history_filters label .material-icons-outlined { position: absolute; top: 11px; left: 11px; color: #96a1b4; font-size: 18px; }
.cms_sns_history_filters label input { padding-left: 38px; }
.cms_sns_history_table { padding: 0 20px 18px; }
.cms_sns_history_table .cms_sns_post_row { grid-template-columns: minmax(0,1.35fr) minmax(115px,.45fr) minmax(145px,.55fr) 100px 140px; }
.cms_sns_history_error { display: block; margin-top: 3px; color: #d44343; font-size: .53rem; }

.cms_demo_toast { position: fixed; right: 28px; bottom: 24px; z-index: 80; display: flex; align-items: center; gap: 9px; max-width: calc(100vw - 40px); padding: 13px 17px; color: #fff; font-size: .72rem; border-radius: 9px; background: #263247; box-shadow: 0 8px 25px rgba(23,35,60,.22); opacity: 0; pointer-events: none; transform: translateY(10px); transition: .25s; }
.cms_demo_toast.is_visible { opacity: 1; transform: none; }
.cms_demo_toast .material-icons-outlined { color: #a9baff; font-size: 19px; }

@media (max-width: 1180px) {
	.cms_summary_grid { grid-template-columns: repeat(2,minmax(0,1fr)); }
	.cms_dashboard_planner { grid-template-columns: 1fr; }
	.cms_milestone_grid { grid-template-columns: repeat(3,minmax(0,1fr)); gap: 14px; padding: 14px 18px 18px; }
	.cms_milestone_card { min-height: 96px; padding: 13px; border: 1px solid var(--cms_line); border-radius: 12px; background: #fff; }
	.cms_milestone_card:last-child { border-bottom: 1px solid var(--cms_line); }
	.cms_cast_grid { grid-template-columns: repeat(3,minmax(0,1fr)); }
	.cms_manage_grid { grid-template-columns: repeat(2,minmax(0,1fr)); }
	.cms_sns_calendar_layout { grid-template-columns: 1fr; }
	.cms_sns_summary { grid-template-columns: repeat(3,minmax(0,1fr)); }
	.cms_sns_summary article:nth-child(3) { border-right: 0; }
	.cms_sns_summary article:nth-child(-n+3) { border-bottom: 1px solid #edf0f4; }
	.cms_sns_platforms { grid-template-columns: repeat(3,minmax(0,1fr)); }
	.cms_sns_preview_images img:only-child { height: auto; max-height: 480px; }
}

@media (max-width: 820px) {
	.cms_admin_page { padding-top: 62px; }
	.cms_admin_shell { display: block; }
	.cms_mobile_header { position: fixed; inset: 0 0 auto; z-index: 45; display: grid; grid-template-columns: 40px 1fr 34px; align-items: center; gap: 12px; height: 62px; padding: 0 18px; border-bottom: 1px solid var(--cms_line); background: rgba(255,255,255,.96); backdrop-filter: blur(12px); }
	.cms_menu_button { display: grid; place-items: center; width: 38px; height: 38px; padding: 0; border: 0; border-radius: 8px; background: #f3f5f9; }
	.cms_mobile_brand { font-size: .86rem; font-weight: 700; }
	.cms_mobile_brand span { color: #334e9f; }
	.cms_mobile_avatar { width: 32px; height: 32px; border: 0; }
	.cms_admin_sidebar { position: fixed; inset: 0 auto 0 0; z-index: 60; width: min(280px,84vw); overflow-y: auto; overscroll-behavior: contain; scrollbar-width: thin; padding-bottom: max(20px,env(safe-area-inset-bottom)); -webkit-overflow-scrolling: touch; touch-action: pan-y; transform: translateX(-105%); transition: transform .28s ease; }
	.cms_sidebar_open { overflow: hidden; }
	.cms_sidebar_open .cms_admin_sidebar { transform: none; }
	.cms_sidebar_scrim { position: fixed; inset: 0; z-index: 55; display: block; padding: 0; border: 0; background: rgba(16,25,44,.45); opacity: 0; pointer-events: none; transition: opacity .28s; }
	.cms_sidebar_open .cms_sidebar_scrim { opacity: 1; pointer-events: auto; }
	.cms_admin_main { margin-left: 0; padding: 27px 18px 55px; }
	.cms_sns_create_grid { grid-template-columns: 1fr; }
	.cms_sns_preview { position: static; }
	.cms_page_head { align-items: flex-start; margin-bottom: 23px; }
	.cms_head_actions .cms_date { display: none; }
	.cms_upcoming_grid { grid-template-columns: 1fr; }
	.cms_dashboard_grid { grid-template-columns: 1fr; }
	.cms_dashboard_calendar_wrap { overflow-x: auto; }
	.cms_dashboard_calendar { min-width: 760px; }
	.cms_settings_layout { grid-template-columns: 1fr; }
	.cms_settings_nav { display: flex; gap: 5px; overflow-x: auto; padding: 6px; }
	.cms_settings_nav button { flex: 0 0 auto; grid-template-columns: 20px 1fr; min-height: 48px; width: auto; padding: 6px 11px; }
	.cms_settings_nav small { display: none; }
	.cms_settings_content { min-height: 520px; }
	.cms_admin_summary { grid-template-columns: repeat(2,minmax(0,1fr)); }
	.cms_admin_add_fields { grid-template-columns: 1fr; }
	.cms_sns_content_fields { grid-template-columns: 1fr; }
	.cms_sns_composer_section.is_source,
	.cms_sns_composer_section.is_timing { grid-template-columns: 1fr; align-items: stretch; }
	.cms_sns_upload_preview { min-height: 130px; }
	.cms_sns_post_list,
	.cms_sns_history_table { overflow-x: auto; }
	.cms_sns_post_row,
	.cms_sns_history_table .cms_sns_post_row { min-width: 850px; }
	.cms_recruit_block_card { grid-template-columns: 1fr; }
}

@media (max-width: 620px) {
	.cms_modal { padding: 12px; }
	.cms_modal_card { max-height: calc(100vh - 24px); }
	.cms_modal_fields { grid-template-columns: 1fr; padding: 20px; }
	.cms_news_conditional { grid-template-columns: 1fr; }
	.cms_thumbnail_content { grid-template-columns: 1fr; }
	.cms_guide_thumbnail_field .cms_thumbnail_content { grid-template-columns: 1fr; }
	.cms_thumbnail_preview { width: 100%; }
	.cms_block_editor_head { align-items: flex-start; flex-direction: column; }
	.cms_add_block_menu { justify-content: flex-start; }
	.cms_block_two { grid-template-columns: 1fr; }
	.cms_cast_image_list { grid-template-columns: repeat(2,minmax(0,1fr)); }
	.cms_modal_fields .cms_span_2 { grid-column: auto; }
	.cms_modal_head { padding: 20px; }
	.cms_modal_actions { padding: 16px 20px 20px; }
	.cms_modal_primary_actions { display: grid; grid-template-columns: 1fr 1fr; }
	.cms_delete_zone { margin-top: 28px; }
	.cms_page_head { display: grid; gap: 17px; }
	.cms_page_head h1 { font-size: 1.65rem; }
	.cms_head_actions,
	.cms_page_head > .cms_primary_button { width: 100%; }
	.cms_head_actions { display: grid; grid-template-columns: 1fr 1fr; }
	.cms_head_actions .cms_primary_button,
	.cms_page_head > .cms_primary_button { width: 100%; }
	.cms_head_actions .cms_secondary_button { justify-content: center; width: 100%; }
	.cms_sort_help { padding: 14px 20px; }
	.cms_sort_list { padding: 14px 12px; }
	.cms_sort_item { grid-template-columns: 22px 44px minmax(0,1fr) auto; gap: 8px; min-height: 62px; padding: 7px; }
	.cms_sort_visual { width: 44px; height: 44px; }
	.cms_admin_page .cms_sort_move button { width: 38px; height: 38px; }
	.cms_sort_actions { display: grid; grid-template-columns: 1fr 1fr; padding: 16px 20px 20px; }
	.cms_profile_fields { padding: 20px; }
	.cms_password_body { padding: 20px; }
	.cms_profile_avatar_edit { grid-template-columns: 70px 1fr; }
	.cms_profile_avatar_edit .cms_admin_avatar_preview { width: 70px; height: 70px; }
	.cms_summary_grid { grid-template-columns: 1fr 1fr; gap: 10px; }
	.cms_summary_card { grid-template-columns: 38px 1fr; gap: 9px; min-height: 138px; padding: 15px 12px 13px; }
	.cms_summary_icon { width: 38px; height: 38px; border-radius: 9px; }
	.cms_summary_icon .material-icons-outlined { font-size: 20px; }
	.cms_summary_card strong { font-size: 1.45rem; }
	.cms_milestone_grid { grid-template-columns: 1fr; gap: 0; padding: 0 16px 14px; }
	.cms_milestone_card,
	.cms_milestone_card:last-child { min-height: 88px; padding: 12px 2px; border: 0; border-bottom: 1px solid #edf0f4; border-radius: 0; }
	.cms_milestone_card:last-child { border-bottom: 0; }
	.cms_milestone_missing { grid-template-columns: 38px minmax(0,1fr); }
	.cms_dashboard_calendar_head { align-items: flex-start; flex-direction: column; }
	.cms_dashboard_calendar_controls { width: 100%; }
	.cms_dashboard_calendar_controls strong { flex: 1; }
	.cms_dashboard_calendar_wrap { overflow-x: hidden; }
	.cms_dashboard_calendar { grid-template-columns: 1fr; min-width: 0; padding: 0 14px 16px; }
	.cms_dashboard_calendar_weekday,
	.cms_dashboard_calendar_day.is_outside { display: none; }
	.cms_dashboard_calendar_day,
	.cms_dashboard_calendar_day:nth-child(7n+1) { display: grid; grid-template-columns: 92px minmax(0,1fr); align-items: center; gap: 8px; min-height: 58px; padding: 9px 10px; border: 0; border-bottom: 1px solid #edf0f4; border-radius: 0; }
	.cms_dashboard_calendar_day > strong { display: none; }
	.cms_dashboard_calendar_mobile_label { display: block; color: #3e4b62; font-size: .7rem; font-weight: 800; }
	.cms_dashboard_calendar_day.is_sunday .cms_dashboard_calendar_mobile_label { color: #e04d4d; }
	.cms_dashboard_calendar_day.is_saturday .cms_dashboard_calendar_mobile_label { color: #3970dc; }
	.cms_dashboard_calendar_event,
	.cms_dashboard_calendar_more { grid-column: 2; margin-top: 0; font-size: .58rem; }
	.cms_dashboard_calendar_day.is_today { border-radius: 8px; box-shadow: inset 0 0 0 2px #8da6eb; }
	.cms_upcoming_list { padding-inline: 14px; }
	.cms_toolbar { align-items: stretch; flex-direction: column; }
	.cms_search { width: 100%; }
	.cms_filters { overflow-x: auto; }
	.cms_list_header,
	.cms_simple_header { display: none; }
	.cms_news_row { grid-template-columns: 74px 1fr auto; grid-template-rows: auto auto auto; gap: 8px 12px; min-height: 106px; margin: 0 15px; }
	.cms_news_row > img,
	.cms_no_image { grid-column: 1; grid-row: 1 / span 2; width: 74px; }
	.cms_news_row > div:nth-child(2) { grid-column: 2 / span 2; grid-row: 1; padding-left: 0; }
	.cms_news_row time { grid-column: 2; grid-row: 2; }
	.cms_news_row > .cms_status { grid-column: 3; grid-row: 2; }
	.cms_news_row > .cms_more_button { display: inline-flex; grid-column: 2 / span 2; grid-row: 3; align-items: center; justify-content: center; justify-self: end; gap: 4px; width: auto; min-width: 72px; height: 34px; padding: 0 11px; color: #4666c5; font-size: .65rem; font-weight: 700; border: 1px solid #dbe3fa; background: #f7f9ff; }
	.cms_news_row > .cms_more_button::after { content: "編集"; }
	.cms_news_row > .cms_more_button .material-icons-outlined { font-size: 16px; }
	.cms_news_row small { max-width: 230px; }
	.cms_simple_row { grid-template-columns: 1fr auto; grid-template-rows: auto auto auto; gap: 6px 10px; min-height: 91px; margin: 0 16px; padding: 13px 0; }
	.cms_simple_row > div:first-child { grid-column: 1 / span 2; }
	.cms_simple_row .cms_more_button { display: inline-flex; grid-column: 1 / span 2; grid-row: 3; align-items: center; justify-content: center; justify-self: end; gap: 4px; width: auto; min-width: 72px; height: 34px; padding: 0 11px; color: #4666c5; font-size: .65rem; font-weight: 700; border: 1px solid #dbe3fa; background: #f7f9ff; }
	.cms_simple_row .cms_more_button::after { content: "編集"; }
	.cms_simple_row .cms_more_button .material-icons-outlined { font-size: 16px; }
	.cms_cast_grid { grid-template-columns: repeat(2,minmax(0,1fr)); gap: 10px; }
	.cms_manage_grid, .cms_qa_grid { grid-template-columns: 1fr; }
	.cms_banner_group { padding: 18px 14px; }
	.cms_banner_tabs { grid-template-columns: 1fr; }
	.cms_banner_group_head { align-items: flex-start; flex-direction: column; }
	.cms_banner_group_actions { width: 100%; }
	.cms_banner_group_actions button { flex: 1; justify-content: center; }
	.cms_concept_editor { padding: 14px; }
	.cms_concept_music_fields { grid-template-columns: 1fr; }
	.cms_concept_editor .cms_primary_button { width: 100%; justify-content: center; }
	.cms_concept_images_head { align-items: flex-start; flex-direction: column; }
	.cms_cast_body { padding: 11px; }
	.cms_cast_body h2 { font-size: .82rem; }
	.cms_cast_meta { align-items: flex-end; flex-direction: column; }
	.cms_cast_body > button { padding: 0 8px; font-size: .6rem; }
	.cms_form_head { min-height: 80px; padding: 18px; }
	.cms_form_section { padding: 22px 18px; }
	.cms_form_grid { grid-template-columns: 1fr; }
	.cms_ogp_setting,
	.cms_map_image_setting { grid-template-columns: 1fr; }
	.cms_fallback_images_setting { grid-template-columns: 1fr; }
	.cms_span_2 { grid-column: auto; }
	.cms_saved_state { display: none; }
	.cms_admin_management { padding: 18px; }
	.cms_admin_summary { grid-template-columns: 1fr 1fr; gap: 7px; }
	.cms_admin_summary article { padding: 11px 12px; }
	.cms_admin_add_actions { display: grid; grid-template-columns: 1fr 1fr; }
	.cms_admin_add_actions .cms_primary_button { justify-content: center; width: 100%; }
	.cms_admin_list_head { display: none; }
	.cms_admin_row { grid-template-columns: 1fr; gap: 11px; padding: 15px; }
	.cms_admin_row > * { width: 100%; }
	.cms_admin_actions { justify-content: flex-start; }
	.cms_admin_actions button { flex: 1; }
	.cms_sns_page_head { align-items: flex-start; flex-direction: column; }
	.cms_sns_summary { grid-template-columns: 1fr 1fr; gap: 8px; }
	.cms_sns_summary { overflow: visible; border: 0; background: transparent; box-shadow: none; }
	.cms_sns_summary article,
	.cms_sns_summary article:nth-child(3),
	.cms_sns_summary article:nth-child(-n+3) { grid-template-columns: 34px 1fr; min-height: 70px; padding: 12px; border: 1px solid var(--cms_line); border-radius: 10px; }
	.cms_sns_summary article > span { width: 34px; height: 34px; }
	.cms_sns_tabs { display: flex; width: 100%; padding: 5px; overflow-x: auto; }
	.cms_sns_tabs button { flex: 1 0 auto; min-width: 132px; }
	.cms_sns_form_body,
	.cms_sns_card_head { padding-inline: 14px; }
	.cms_sns_form_body { padding-inline: 14px; }
	.cms_sns_platforms { grid-template-columns: 1fr 1fr; }
	.cms_sns_schedule_fields { grid-template-columns: 1fr; }
	.cms_sns_form_actions { display: grid; grid-template-columns: 1fr 1fr; padding-inline: 14px; }
	.cms_sns_calendar_head { grid-template-columns: 1fr; }
	.cms_sns_calendar_head > div { justify-content: center; }
	.cms_sns_calendar_head > button:last-child { justify-self: start; }
	.cms_sns_calendar { min-width: 710px; }
	.cms_sns_card:has(.cms_sns_calendar) { overflow-x: auto; }
	.cms_sns_history_filters { grid-template-columns: 1fr; padding-inline: 14px; }
	.cms_sns_calendar { grid-template-columns: 1fr; min-width: 0; padding: 0 14px 16px; }
	.cms_sns_calendar_weekday,
	.cms_sns_calendar_day.is_outside { display: none; }
	.cms_sns_calendar_day,
	.cms_sns_calendar_day:nth-child(7n+1) { display: grid; grid-template-columns: 92px minmax(0,1fr); align-items: center; gap: 8px; min-height: 58px; padding: 9px 10px; border: 0; border-bottom: 1px solid #edf0f4; border-radius: 0; }
	.cms_sns_calendar_day > strong { display: none; }
	.cms_sns_calendar_mobile_label { display: block; color: #3e4b62; font-size: .7rem; font-weight: 800; }
	.cms_sns_calendar_day.is_sunday .cms_sns_calendar_mobile_label { color: #e04d4d; }
	.cms_sns_calendar_day.is_saturday .cms_sns_calendar_mobile_label { color: #3970dc; }
	.cms_sns_calendar_event { grid-column: 2; margin-top: 0; font-size: .58rem; }
	.cms_sns_calendar_day.is_selected { border-radius: 8px; box-shadow: inset 0 0 0 2px #8da6eb; }
	.cms_sns_card:has(.cms_sns_calendar) { overflow-x: hidden; }
	.cms_activity_list { padding: 3px 17px; }
	.cms_activity_item { grid-template-columns: 35px 1fr; min-height: 74px; }
	.cms_activity_item time { display: none; }
	.cms_card_head { padding-inline: 18px; }
	.cms_demo_toast { right: 16px; bottom: 16px; }
}

/* BASE */
.cms_base_panel [data-base-current-shop] { margin: 0 0 20px; font-size: 14px; line-height: 1.7; overflow-wrap: anywhere; }
.cms_base_panel { padding: 28px; }
.cms_base_intro { display: flex; align-items: flex-start; gap: 14px; padding: 18px 20px; color: #41506a; border: 1px solid #dce5fb; border-radius: 12px; background: #f6f8ff; }
.cms_base_intro > .material-icons-outlined { color: #4d76e8; font-size: 22px; }
.cms_base_intro strong { display: block; color: #26324a; font-size: .78rem; }
.cms_base_intro p { margin: 4px 0 0; font-size: .65rem; line-height: 1.7; }
.cms_base_categories { display: grid; grid-template-columns: repeat(auto-fit,minmax(260px,1fr)); gap: 12px; margin-top: 22px; }
.cms_base_category { display: grid; grid-template-columns: minmax(0,1fr) auto auto; align-items: center; gap: 12px; min-height: 76px; padding: 15px 16px; border: 1px solid #e0e5ef; border-radius: 12px; background: #fff; transition: border-color .2s,box-shadow .2s,background .2s; }
.cms_base_category:hover { border-color: #b8c7ee; box-shadow: 0 7px 18px rgba(44,65,113,.07); }
.cms_base_category:has(input:checked) { border-color: #7895e9; background: #f7f9ff; box-shadow: 0 0 0 2px rgba(77,118,232,.08); }
.cms_base_category_select { display: grid; grid-template-columns: 24px minmax(0,1fr); align-items: center; gap: 12px; min-width: 0; cursor: pointer; }
.cms_base_category > input { position: absolute; opacity: 0; pointer-events: none; }
.cms_base_category_select > input { position: absolute; opacity: 0; pointer-events: none; }
.cms_base_category_check { display: grid; place-items: center; width: 22px; height: 22px; color: transparent; border: 1px solid #c7cfdd; border-radius: 6px; background: #fff; }
.cms_base_category_check .material-icons-outlined { font-size: 16px; font-weight: 800; }
.cms_base_category input:checked + .cms_base_category_check { color: #fff; border-color: #4d76e8; background: #4d76e8; }
.cms_base_category_copy { display: flex; min-width: 0; flex-direction: column; }
.cms_base_category_copy strong { overflow: hidden; color: #253047; font-size: .72rem; text-overflow: ellipsis; white-space: nowrap; }
.cms_base_category_copy small { margin-top: 4px; color: #909bad; font-size: .56rem; }
.cms_base_category_count { padding: 5px 8px; color: #5e6c82; font-size: .57rem; font-weight: 700; white-space: nowrap; border-radius: 12px; background: #f0f3f8; }
.cms_base_category_actions { display: flex; gap: 5px; }
.cms_base_category_actions button { display: grid; place-items: center; width: 30px; height: 30px; padding: 0; color: #40516e; border: 1px solid #d4dbe7; border-radius: 8px; background: #fff; cursor: pointer; }
.cms_base_category_actions button:hover:not(:disabled), .cms_base_category_actions button:focus-visible:not(:disabled) { color: #fff; border-color: #4d76e8; background: #4d76e8; }
.cms_base_category_actions button:disabled { opacity: .35; cursor: default; }
.cms_base_category_actions .material-icons-outlined { font-size: 17px; }
.cms_base_footer { display: flex; align-items: center; justify-content: space-between; gap: 15px; margin-top: 20px; padding-top: 18px; border-top: 1px solid #edf0f5; }
.cms_base_footer span { color: #3f5fb5; font-size: .66rem; font-weight: 800; }
.cms_base_footer small { color: #8d98aa; font-size: .58rem; }
@media (max-width: 640px) { .cms_base_panel { padding: 18px; } .cms_base_categories { grid-template-columns: 1fr; } .cms_base_category { grid-template-columns: minmax(0,1fr) auto; } .cms_base_category_count { display: none; } .cms_base_footer { align-items: flex-start; flex-direction: column; gap: 5px; } }

/* Login */
.cms_login_page { min-height: 100vh; margin: 0; color: #202a3b; font-family: "Noto Sans JP", "Hiragino Sans", "Yu Gothic", sans-serif; background: radial-gradient(circle at 15% 12%,rgba(112,139,230,.2),transparent 30%),linear-gradient(145deg,#f7f8fc,#edf1fa); }
.cms_login_page * { box-sizing: border-box; }
.cms_login_shell { display: grid; place-items: center; align-content: center; min-height: 100vh; padding: 28px 18px; }
.cms_login_card { width: min(430px,100%); padding: 38px 40px 34px; border: 1px solid rgba(222,227,239,.9); border-radius: 20px; background: rgba(255,255,255,.96); box-shadow: 0 24px 70px rgba(29,43,74,.13); }
.cms_login_brand { display: flex; align-items: center; justify-content: center; gap: 8px; }
.cms_login_icon { display: grid; place-items: center; width: 42px; height: 42px; margin-right: 4px; overflow: hidden; color: #fff; font-size: .8rem; font-weight: 800; border-radius: 12px; background: linear-gradient(135deg,#587be1,#956de0); }
.cms_login_icon img { width: 100%; height: 100%; object-fit: cover; }
.cms_login_icon .material-icons-outlined { font-size: 22px; }
.cms_login_brand p { margin: 0; color: #3554ad; font-size: .92rem; font-weight: 800; }
.cms_login_brand strong { font-size: .92rem; letter-spacing: .08em; }
.cms_login_heading { margin: 30px 0 25px; text-align: center; }
.cms_login_heading h1 { margin: 0; font-size: 1.55rem; }
.cms_login_heading p { margin: 7px 0 0; color: #7c879b; font-size: .68rem; line-height: 1.7; }
.cms_login_form { display: grid; gap: 17px; }
.cms_login_form > label > span { display: block; margin-bottom: 7px; color: #4d586c; font-size: .66rem; font-weight: 700; }
.cms_login_form > label > div { display: grid; grid-template-columns: 25px 1fr auto; align-items: center; min-height: 46px; padding: 0 12px; border: 1px solid #dfe4ed; border-radius: 9px; background: #fff; transition: border-color .2s,box-shadow .2s; }
.cms_login_form > label > div:focus-within { border-color: #7792e8; box-shadow: 0 0 0 3px rgba(77,118,232,.1); }
.cms_login_form > label > div > .material-icons-outlined { color: #9ba6b9; font-size: 18px; }
.cms_login_form input { min-width: 0; padding: 0 5px; color: #263146; font: inherit; font-size: .7rem; border: 0; outline: 0; background: transparent; }
.cms_login_form > label button { display: grid; place-items: center; width: 32px; height: 32px; padding: 0; color: #8b96a9; border: 0; border-radius: 7px; background: transparent; cursor: pointer; }
.cms_login_form > label button:hover { color: #4d6dcc; background: #f1f4fc; }
.cms_login_form > label button .material-icons-outlined { font-size: 18px; }
.cms_login_options { display: flex; align-items: center; justify-content: space-between; gap: 14px; }
.cms_login_options label { display: flex; align-items: center; gap: 7px; color: #667187; font-size: .63rem; cursor: pointer; }
.cms_login_options input { width: 15px; height: 15px; padding: 0; border: 1px solid #cbd2df; border-radius: 4px; appearance: auto; }
.cms_login_options button { padding: 0; color: #4d6dcc; font-size: .63rem; font-weight: 700; border: 0; background: transparent; cursor: pointer; }
.cms_login_submit { display: flex; align-items: center; justify-content: center; gap: 8px; min-height: 47px; margin-top: 5px; color: #fff; font-size: .74rem; font-weight: 800; border: 0; border-radius: 9px; background: #4d76e8; box-shadow: 0 8px 18px rgba(77,118,232,.22); cursor: pointer; }
.cms_login_submit:hover { background: #3f68dc; }
.cms_login_submit .material-icons-outlined { font-size: 18px; }
.cms_login_message { min-height: 20px; margin: -3px 0 0; color: #71809a; font-size: .62rem; text-align: center; }
.cms_login_footer { margin: 18px 0 0; color: #9aa5b7; font-size: .58rem; letter-spacing: .08em; }
.cms_invitation_invalid { display: grid; gap: 16px; color: #667187; font-size: .7rem; line-height: 1.8; text-align: center; }
.cms_invitation_invalid p { margin: 0; }
.cms_invitation_invalid .cms_login_submit { text-decoration: none; }
@media (max-width: 480px) { .cms_login_card { padding: 32px 22px 28px; border-radius: 16px; } .cms_login_options { align-items: flex-start; flex-direction: column; gap: 10px; } }

/* Store selection */
.cms_store_select_page { --cms_blue: #4d76e8; min-height: 100vh; margin: 0; color: #202a3b; font-family: "Noto Sans JP", "Hiragino Sans", "Yu Gothic", sans-serif; background: #f4f6fa; }
.cms_store_select_page [hidden] { display: none !important; }
.cms_store_select_page * { box-sizing: border-box; }
.cms_store_select_header { display: flex; align-items: center; justify-content: space-between; min-height: 72px; padding: 0 clamp(20px,5vw,70px); border-bottom: 1px solid #e4e8ef; background: #fff; }
.cms_store_select_header > div:first-child { display: flex; align-items: baseline; gap: 10px; }
.cms_store_select_header > div:first-child strong { color: #3554ad; font-size: 1rem; letter-spacing: .1em; }
.cms_store_select_header > div:first-child small { color: #8a95a8; font-size: .62rem; }
.cms_store_select_header > div:last-child { display: flex; align-items: center; gap: 8px; color: #68758a; font-size: .66rem; }
.cms_store_select_header > div:last-child .material-icons-outlined { font-size: 20px; }
.cms_store_select_header a { margin-left: 10px; color: #5871bc; font-weight: 700; text-decoration: none; }
.cms_store_select_main { width: min(1040px,calc(100% - 36px)); margin: 0 auto; padding: 60px 0 80px; }
.cms_store_select_heading { text-align: center; }
.cms_store_select_heading p { margin: 0 0 5px; color: #4d76e8; font-size: .62rem; font-weight: 800; letter-spacing: .16em; }
.cms_store_select_heading h1 { margin: 0; font-size: clamp(1.55rem,3vw,2rem); }
.cms_store_select_heading > span { display: block; margin-top: 8px; color: #7c879b; font-size: .7rem; }
.cms_store_select_page .cms_primary_button { display: inline-flex; align-items: center; justify-content: center; gap: 8px; min-height: 44px; padding: 0 20px; color: #fff; font: inherit; font-size: .7rem; font-weight: 800; letter-spacing: .02em; border: 0; border-radius: 10px; background: var(--cms_blue); box-shadow: 0 7px 18px rgba(77,118,232,.2); cursor: pointer; transition: transform .2s,background .2s,box-shadow .2s; }
.cms_store_select_page .cms_primary_button:hover { color: #fff; background: #3c66dc; box-shadow: 0 10px 22px rgba(77,118,232,.26); transform: translateY(-1px); }
.cms_store_select_page .cms_primary_button:focus-visible { outline: 3px solid rgba(77,118,232,.2); outline-offset: 3px; }
.cms_store_select_page .cms_primary_button:disabled { opacity: .55; cursor: wait; transform: none; }
.cms_store_select_page .cms_primary_button .material-icons-outlined { color: #fff; font-size: 18px; }
.cms_store_create_open { margin: 22px auto 0; }
.cms_store_create_panel { margin-top: 30px; overflow: hidden; text-align: left; border: 1px solid #dfe5ef; border-radius: 16px; background: #fff; box-shadow: 0 15px 42px rgba(30,48,88,.08); }
.cms_store_create_head { display: flex; align-items: flex-start; justify-content: space-between; gap: 20px; padding: 24px 28px; border-bottom: 1px solid #edf0f5; background: #fafbfe; }
.cms_store_create_head p { margin: 0 0 5px; color: #4d76e8; font-size: .58rem; font-weight: 800; letter-spacing: .15em; }
.cms_store_create_head h2 { margin: 0; font-size: 1rem; }
.cms_store_create_head span:not(.material-icons-outlined) { display: block; margin-top: 7px; color: #7c879b; font-size: .65rem; line-height: 1.7; }
.cms_store_create_close { display: grid; place-items: center; width: 36px; height: 36px; padding: 0; color: #7d899d; border: 1px solid #dce2ec; border-radius: 9px; background: #fff; cursor: pointer; }
.cms_store_create_close .material-icons-outlined { font-size: 19px; }
.cms_store_create_panel form { padding: 26px 28px 28px; }
.cms_store_create_panel .cms_field small { display: block; margin-top: 6px; color: #8b96a9; font-size: .56rem; line-height: 1.6; }
.cms_store_create_actions { display: flex; align-items: center; justify-content: flex-end; gap: 10px; margin-top: 24px; padding-top: 20px; border-top: 1px solid #edf0f5; }
.cms_store_create_actions p { flex: 1; margin: 0; color: #53637d; font-size: .64rem; line-height: 1.6; }
.cms_store_create_actions button { min-height: 42px; }
.cms_store_create_actions .cms_primary_button { min-width: 142px; }
.cms_store_create_actions .cms_secondary_button { display: inline-flex; align-items: center; justify-content: center; min-width: 96px; padding: 0 16px; color: #637087; font: inherit; font-size: .68rem; font-weight: 700; border: 1px solid #dce2ec; border-radius: 10px; background: #fff; cursor: pointer; transition: color .2s,border-color .2s,background .2s; }
.cms_store_create_actions .cms_secondary_button:hover { color: #3554ad; border-color: #bdc9e8; background: #f7f9ff; }
.cms_store_create_actions .cms_secondary_button:focus-visible { outline: 3px solid rgba(77,118,232,.16); outline-offset: 3px; }
.cms_store_list { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: 16px; margin-top: 38px; }
.cms_store_list > button { display: grid; grid-template-columns: 64px 1fr 25px; align-items: center; gap: 14px; min-height: 140px; padding: 22px; color: #253047; text-align: left; border: 1px solid #e0e5ee; border-radius: 14px; background: #fff; box-shadow: 0 8px 24px rgba(25,39,70,.05); cursor: pointer; transition: transform .2s,border-color .2s,box-shadow .2s; }
.cms_store_list > button:hover { border-color: #bfcdf3; box-shadow: 0 14px 30px rgba(37,59,110,.1); transform: translateY(-2px); }
.cms_store_card_icon { display: grid; place-items: center; width: 64px; height: 64px; color: #fff; font-size: .82rem; font-weight: 800; border-radius: 15px; background: linear-gradient(135deg,var(--cms-store-start,#567ce6),var(--cms-store-end,#976be0)); }
.cms_store_card_icon img { width: 100%; height: 100%; object-fit: cover; border-radius: inherit; }
.cms_store_card_text { display: flex; min-width: 0; flex-direction: column; }
.cms_store_card_text strong { font-size: .84rem; }
.cms_store_card_text small { margin-top: 2px; overflow: hidden; color: #8a95a8; font-size: .59rem; text-overflow: ellipsis; white-space: nowrap; }
.cms_store_card_text em { align-self: flex-start; margin-top: 11px; padding: 4px 8px; color: #39725e; font-size: .55rem; font-style: normal; font-weight: 800; border-radius: 12px; background: #e8f6f0; }
.cms_store_card_text em.is_editor { color: #5c68a9; background: #edf0ff; }
.cms_store_list > button > .material-icons-outlined { color: #9ba6b8; font-size: 20px; }
.cms_store_select_note { display: flex; align-items: center; justify-content: center; gap: 7px; margin: 24px 0 0; color: #8490a4; font-size: .62rem; }
.cms_store_select_note .material-icons-outlined { font-size: 17px; }
.cms_store_list_state { grid-column: 1 / -1; margin: 32px 0; padding: 34px; color: #7c879b; text-align: center; border: 1px dashed #ccd3df; border-radius: 14px; background: rgba(255,255,255,.72); }
.cms_store_list_state.is_error { color: #a54d55; border-color: #e8c5c8; background: #fff7f7; }
@media (max-width: 820px) { .cms_store_list { grid-template-columns: 1fr; } .cms_store_list > button { min-height: 112px; } .cms_store_create_panel .cms_form_grid { grid-template-columns: 1fr; } .cms_store_create_panel .cms_span_2 { grid-column: auto; } }
@media (max-width: 520px) { .cms_store_select_header { min-height: 64px; padding: 0 16px; } .cms_store_select_header > div:first-child small, .cms_store_select_header > div:last-child > span:not(.material-icons-outlined) { display: none; } .cms_store_select_main { padding-top: 42px; } .cms_store_create_head, .cms_store_create_panel form { padding: 20px 17px; } .cms_store_create_actions { align-items: stretch; flex-direction: column; } .cms_store_create_actions p { width: 100%; } .cms_store_create_actions button { width: 100%; justify-content: center; } .cms_store_list > button { grid-template-columns: 54px 1fr 22px; padding: 17px; } .cms_store_card_icon { width: 54px; height: 54px; } }

/* Owner-managed BASE connection settings */
[data-settings-panel="base-connection"] .cms_form_section > p {
    font-size: 13px;
    line-height: 1.8;
    margin: 0 0 16px;
}
[data-settings-panel="base-connection"] .cms_form_grid { margin-bottom: 18px; }
[data-base-connection-url] { font-size: 13px; overflow-wrap: anywhere; }
[data-base-connection-status] { padding: 12px; background: #f5f7fb; border-radius: 8px; }
.cms_base_connection_note { color: #687386; }
[data-base-connection-reload] { margin: 8px 0; }

/* SNS composer: source → format → destinations → content → schedule. */
.cms_sns_content_fields { grid-template-columns: minmax(0, 1fr); gap: 18px; }
.cms_sns_kinds { display: grid; grid-template-columns: repeat(5,minmax(0,1fr)); gap: 8px; }
.cms_sns_kinds label { position: relative; min-width: 0; }
.cms_sns_kinds input { position: absolute; opacity: 0; }
.cms_sns_kinds label > span { display: grid; justify-items: center; gap: 10px; padding: 16px 5px; border: 1px solid #dce4f0; border-radius: 10px; font-size: .7rem; font-weight: 700; cursor: pointer; }
.cms_sns_kinds .material-icons-outlined { font-size: 26px; }
.cms_sns_kinds input:checked + span { color: #2462d6; border-color: #3978f2; background: #f0f6ff; box-shadow: inset 0 0 0 1px #3978f2; }
.cms_sns_kinds input:focus-visible + span { outline: 3px solid #8db5ff; outline-offset: 2px; }
.cms_sns_kind_note { margin: 10px 0 0; padding: 9px 12px; border-radius: 8px; background: #f0f6ff; color: #506484; font-size: .67rem; line-height: 1.6; }
.cms_sns_platforms { grid-template-columns: repeat(4,minmax(0,1fr)); }
.cms_sns_platform > span { flex-wrap: wrap; min-height: 64px; }
.cms_sns_platform_note { width: 100%; font-size: .52rem; }
.cms_sns_upload > strong { display: flex; justify-content: space-between; margin-bottom: 10px; }
.cms_sns_upload_preview { align-items: start; gap: 10px; padding: 10px; }
.cms_sns_upload_preview > span { padding-top: 28px; background: #f3f5f8; }
.cms_sns_upload_preview img { height: auto; max-height: 300px; }
.cms_sns_upload_preview > span:only-child img { max-height: 480px; }
.cms_sns_upload_preview canvas { display:block; width:100%; height:auto; max-height:300px; }
.cms_sns_upload_preview > span:only-child canvas { max-height:480px; }
.cms_sns_upload_preview .cms_sns_image_actions { position: absolute; right: 4px; top: 3px; display: flex; gap: 5px; }
.cms_sns_upload_preview button { position: static; width: 26px; height: 24px; border-radius: 5px; }
.cms_sns_upload_preview button:disabled { opacity: .3; cursor: default; }
.cms_sns_image_number { position: absolute; top: 5px; left: 8px; color: #56637c; font-size: .65rem; }
.cms_sns_upload > .cms_sns_padding { margin: 10px 0; justify-content: flex-start; padding: 10px; color: #725616; background: #fff9e9; border-color: #ead79d; }
.cms_sns_upload > .cms_sns_padding input { display: inline-block; flex: 0 0 auto; accent-color: #3978f2; }
.cms_sns_upload [hidden], .cms_sns_composer [hidden] { display: none !important; }
.cms_sns_preview_images.is_fitted img { aspect-ratio: var(--sns-ratio); height: auto; max-height: none; object-fit: contain; background: #fff; }
.cms_sns_preview_images canvas { display:block; width:100%; min-width:0; height:150px; background:#fff; }
.cms_sns_preview_images canvas:only-child { grid-column:1 / -1; height:auto; max-height:480px; }
.cms_sns_preview_images.is_fitted canvas { aspect-ratio:var(--sns-ratio); height:auto; max-height:none; }
.cms_sns_preview_tabs { display: flex; gap: 8px; margin-bottom: 12px; }
.cms_sns_preview_tabs button { border: 0; border-bottom: 2px solid transparent; background: transparent; padding: 8px 12px; color: #66748b; cursor: pointer; }
.cms_sns_preview_tabs button[aria-pressed="true"] { color: #2462d6; border-color: #3978f2; font-weight: 700; }
.cms_sns_preview_hint { display: block; margin-top: 10px; font-size: .57rem; color: #7c8798; }
.cms_sns_review { padding: 18px; border-top: 1px solid #e7ecf4; }
.cms_sns_review h3 { font-size: .85rem; margin: 0 0 12px; }
.cms_sns_review p, .cms_sns_confirm p { color: #78849a; font-size: .65rem; line-height: 1.6; }
.cms_sns_review dl, .cms_sns_confirm dl { display: grid; grid-template-columns: 65px minmax(0,1fr); font-size: .7rem; gap: 14px; margin-bottom: 14px; }
.cms_sns_review dt, .cms_sns_confirm dt { color: #78849a; }
.cms_sns_review dd, .cms_sns_confirm dd { margin: 0; overflow-wrap: anywhere; }
.cms_sns_confirm { width: min(460px,calc(100vw - 32px)); max-height: calc(100vh - 40px); margin: auto; padding: 24px; border: 1px solid #dce4f0; border-radius: 16px; color: #24324a; }
.cms_sns_confirm::backdrop { background: rgba(16,28,48,.5); }
.cms_sns_confirm h2 { font-size: 1rem; margin: 0 0 22px; }
.cms_sns_confirm > div:last-child { display: flex; justify-content: flex-end; gap: 10px; margin-top: 20px; }
@media (max-width: 600px) {
 .cms_sns_kinds, .cms_sns_platforms { grid-template-columns: repeat(2,minmax(0,1fr)); }
 .cms_sns_confirm { padding: 18px; }
}
.cms_sns_extra { border: 1px solid #e4e9f2; border-radius: 8px; }
.cms_sns_extra summary { padding: 10px 12px; font-size: .7rem; font-weight: 700; color: #61708a; cursor: pointer; }
.cms_sns_extra > div { display: grid; gap: 12px; padding: 4px 12px 12px; }
.cms_sns_preview > [data-sns-preview] { padding: 14px; }

.cms_sns_save_feedback { padding: 14px 16px; border-radius: 10px; background: #eef4ff; color: #254c87; font-size: .85rem; line-height: 1.7; }
.cms_sns_confirm .cms_sns_save_feedback { font-size: .85rem; color: #254c87; }
.cms_sns_save_feedback[data-state="loading"]::before { content: ''; display: inline-block; width: 14px; height: 14px; margin-right: 9px; border: 2px solid #b7caf1; border-top-color: #3565ca; border-radius: 50%; vertical-align: -2px; animation: sns-saving-spin .8s linear infinite; }
.cms_sns_save_feedback[data-state="success"] { background: #eaf7ee; color: #21673a; }
.cms_sns_save_feedback[data-state="error"] { background: #fff0ed; color: #9d3028; }
.cms_sns_confirm button:disabled, .cms_sns_form_actions button:disabled { opacity: .65; cursor: wait; }
@keyframes sns-saving-spin { to { transform: rotate(360deg); } }
@media (prefers-reduced-motion: reduce) { .cms_sns_save_feedback[data-state="loading"]::before { animation: none; } }

.cms_event_countdown { grid-template-columns: 28px minmax(0,1fr) auto; gap: 12px; }
.cms_event_countdown > .material-icons-outlined { color: #6a53ad; }
.cms_event_countdown .cms_upcoming_copy strong { white-space: normal; overflow-wrap: anywhere; }
.cms_event_countdown .cms_upcoming_meta strong { font-size: 1.1rem; white-space: nowrap; }

.cms_dashboard_milestone_column { display: grid; gap: 20px; min-width: 0; }
.cms_event_countdown_card .cms_card_head { flex-wrap: wrap; gap: 8px; }

/* SNS image picker: center the empty state, preserve uploaded image ratios. */
.cms_sns_upload_preview { cursor: pointer; transition: background .15s, border-color .15s; }
.cms_sns_upload_preview:empty::before { align-self: stretch; }
.cms_sns_image_empty { grid-column: 1 / -1; align-self: stretch; display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 8px; min-height: 138px; padding: 12px; text-align: center; color: #657698; }
.cms_sns_image_empty > .material-icons-outlined { font-size: 30px; line-height: 1; color: #8295ba; }
.cms_sns_image_empty strong { font-size: .7rem; }
.cms_sns_image_empty small { font-size: .6rem; }
.cms_sns_upload_preview:hover, .cms_sns_upload_preview:focus-visible, .cms_sns_upload_preview.is_dragover { border-color: #4f70d3; background: #eaf0ff; outline: 2px solid #b8c9f5; outline-offset: 2px; }
.cms_sns_upload_preview[aria-busy="true"] { opacity: .65; cursor: progress; }

.cms_sns_video_picker { margin-top: 18px; padding: 18px; border: 1px solid #d4def6; border-radius: 10px; background: #f8faff; }
.cms_sns_video_picker p { font-size: .7rem; line-height: 1.7; }
.cms_sns_video_picker > div { display: flex; flex-wrap: wrap; gap: 8px; }
.cms_sns_video_picker select { flex: 1; min-width: 180px; padding: 10px; }
.cms_sns_video_picker button { padding: 10px; border: 1px solid #d4def6; border-radius: 6px; background: white; cursor: pointer; }
.cms_sns_video_picker video { display: block; width: min(100%, 720px); max-width: 100%; max-height: 400px; margin: 15px auto 0; }

.cms_sns_video_drop { display: flex; min-height: 130px; margin: 14px 0; padding: 20px; flex-direction: column; align-items: center; justify-content: center; gap: 10px; text-align: center; border: 2px dashed #bdc9df; border-radius: 10px; cursor: pointer; }
.cms_sns_video_drop input { position: absolute; width: 1px; height: 1px; opacity: 0; }
.cms_sns_video_drop:focus-within, .cms_sns_video_drop.is_dragover { border-color: #3978f2; background: #eaf0ff; }
.cms_sns_video_drop[aria-busy=true] { opacity: .6; cursor: progress; }
.cms_sns_video_picker details { margin: 12px 0; }

/* Recurring SNS reservations */

.cms_sns_recurring{padding:20px;border:1px solid #dbe3fa;background:#f7f9ff;border-radius:16px;margin-bottom:24px}.cms_sns_recurring[hidden]{display:none}.cms_sns_recurring p{font-size:13px;color:#64748b;margin:10px 0}.cms_sns_recurrence_fields{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px;margin:18px 0}.cms_sns_recurrence_fields>label{display:grid;gap:6px;font-size:13px}.cms_sns_recurrence_fields input:not([type=checkbox]),.cms_sns_recurrence_fields select{width:100%;min-width:0;padding:10px;background:white;border:1px solid #dbe3ef;border-radius:8px}.cms_sns_recurrence_fields fieldset{grid-column:1/-1;border:0;display:flex;gap:14px;flex-wrap:wrap}.cms_sns_recurrence_fields [hidden]{display:none}.cms_sns_recurring details{margin:18px 0}.cms_sns_recurring article{padding:14px 0;border-bottom:1px solid #dbe3ef}.cms_sns_recurring article button{margin:6px 8px 0 0;padding:6px 10px;border:1px solid #dbe3ef;background:white;border-radius:6px}.cms_sns_recurring ol{padding-left:24px;font-size:13px;line-height:1.8}@media(max-width:600px){.cms_sns_recurrence_fields{grid-template-columns:1fr}}

.cms_sns_recurrence_fields input[type="checkbox"] { appearance:auto; width:18px; height:18px; margin-right:5px; vertical-align:middle; accent-color:#476ee8; }
/* Dedicated business-hours settings use the existing CMS controls. */
.cms_hours_help { color: #687386; font-size: 13px; line-height: 1.7; margin: 12px 0; }
.cms_hours_actions { display: flex; flex-wrap: wrap; gap: 10px; align-items: center; margin: 14px 0; }
.cms_hours_row { display: flex; justify-content: space-between; align-items: center; gap: 12px; border-bottom: 1px solid #e6e8ef; padding: 10px 0; }
.cms_hours_row > div:first-child { display: grid; gap: 6px; min-width: 0; overflow-wrap: anywhere; }
.cms_hours_preview { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 12px; }
.cms_hours_preview > p,
.cms_hours_preview > small { grid-column: 1 / -1; overflow-wrap: anywhere; }
.cms_hours_day { display: grid; gap: 8px; padding: 16px; border-radius: 10px; background: #f2f4ff; }
.cms_hours_day strong { font-size: 19px; }
.cms_hours_day small { color: #596477; overflow-wrap: anywhere; }
.cms_hours_dashboard { padding: 22px; margin-bottom: 24px; border: 1px solid #e6e8ef; background: #fff; border-radius: 14px; }
.cms_hours_dashboard h2 { font-size: 18px; margin: 0 0 14px; }
.cms_hours_dialog { width: min(520px, calc(100vw - 32px)); max-height: calc(100dvh - 32px); overflow: auto; box-sizing: border-box; border: 0; border-radius: 16px; padding: 24px; color: #1c273b; }
.cms_hours_dialog::backdrop { background: rgb(20 30 50 / 50%); }
.cms_hours_dialog form { display: grid; gap: 18px; }
.cms_hours_dialog h2 { margin: 0; font-size: 21px; }
.cms_hours_check { display: flex; gap: 10px; align-items: center; min-height: 44px; }
.cms_hours_check input { appearance: auto; width: 20px; height: 20px; }
[data-hours-list] details { margin: 14px 0; }
@media (max-width: 600px) {
  .cms_hours_preview { grid-template-columns: 1fr; }
  .cms_hours_row { align-items: flex-start; flex-direction: column; }
  .cms_hours_dialog { padding: 20px; }
}

/* Calendar hours share the date row; events keep their existing rows. */
.cms_calendar_hours { display: inline-block; max-width: calc(100% - 24px); margin: 0 0 0 5px; padding: 3px 2px; border: 0; border-radius: 4px; background: transparent; color: #687b9e; font: inherit; font-size: .48rem; line-height: 1.5; vertical-align: middle; cursor: pointer; overflow-wrap: anywhere; }
.cms_calendar_hours:hover { background: #edf2ff; color: #3159c5; text-decoration: underline; }
.cms_calendar_hours:focus-visible { outline: 2px solid #7995ea; outline-offset: 2px; }
.cms_calendar_hours.is_override { color: #865cb3; background: #f5effb; }
.cms_dashboard_calendar_day.is_holiday > strong,
.cms_dashboard_calendar_day.is_holiday .cms_dashboard_calendar_mobile_label { color: #e04d4d; }
@media (max-width: 620px) {
  .cms_calendar_hours { max-width: 100%; margin: 0; padding: 6px 2px; justify-self: start; font-size: .6rem; }
}
