/* [주의] 이 파일에서는 [class*="…"] 같은 class 속성 부분일치 선택자를 쓰지 않는다.
   이런 규칙이 하나라도 있으면 브라우저(Chrome)는 어떤 요소든 클래스가 바뀔 때마다 그 아래 전체 스타일을
   다시 계산한다(규칙당 약 1ms × 요소 1만 개). 매물등록폼 초기화가 클래스를 수십 번 바꾸면서 1초 넘게 밀렸다.
   대신 실제 클래스 이름을 :is(...) 로 나열한다. 새 클래스가 생기면 목록에 추가한다. */
/* ============================================================================
 * admin_style_category.php  —  카테고리형(디자인 타입, 스타일1) 전용 스타일
 * ----------------------------------------------------------------------------
 * /script/get/admin_style_category 로 서빙되어 admin_style 위에 오버레이된다.
 * dashboard_style_original 40~48 에서만 로드된다(admin_header.php 가드).
 * base 는 0(기본)으로 환산되므로 style 9 전용 footer CSS(!important)와 경쟁하지 않아
 * 여기서는 !important 를 쓰지 않는다. 우선순위는 body.catx-on 접두 명세도로 확보한다.
 * 색상 팔레트는 클로드 디자인 시안(관리자용.dc.html, 다크, accent #4d8dff)에서 가져왔다.
 * accent 는 향후 홈페이지 대표컬러 설정과 연동 가능(현재는 시안 기본값 고정).
 * ==========================================================================*/

/* ---- 팔레트 (다크 기본) ---------------------------------------------------- */
body.catx-on{
	--cx-accent:#4d8dff;
	--cx-accent-token: color-mix(in oklab, var(--cx-accent) 88%, #ffffff);
	--cx-accent-text:  color-mix(in oklab, var(--cx-accent) 55%, #ffffff);
	--cx-brand: linear-gradient(140deg, var(--cx-accent), color-mix(in oklab, var(--cx-accent) 45%, #4d6dff));
	--cx-page-bg: radial-gradient(1200px 600px at 80% -10%, color-mix(in oklab, var(--cx-accent) 12%, #1b2636) 0%, color-mix(in oklab, var(--cx-accent) 5%, #121a26) 60%);
	--cx-page-solid: color-mix(in oklab, var(--cx-accent) 5%, #161f2c);
	--cx-header: color-mix(in oklab, var(--cx-accent) 7%, #1c2634);
	--cx-sidebar: linear-gradient(180deg, color-mix(in oklab, var(--cx-accent) 8%, #212c3c), color-mix(in oklab, var(--cx-accent) 4%, #1a2431));
	--cx-card: linear-gradient(160deg, color-mix(in oklab, var(--cx-accent) 9%, #26323f), color-mix(in oklab, var(--cx-accent) 4%, #202a37));
	--cx-panel: color-mix(in oklab, var(--cx-accent) 6%, #232e3c);
	--cx-chip: color-mix(in oklab, var(--cx-accent) 7%, #2a3644);
	--cx-row: color-mix(in oklab, var(--cx-accent) 7%, #2e3a49);
	--cx-track: color-mix(in oklab, var(--cx-accent) 10%, #455465);
	--cx-line: rgba(190,214,240,.20);
	--cx-line2: rgba(190,214,240,.32);
	--cx-line-soft: rgba(190,214,240,.13);
	--cx-hover-bg: color-mix(in oklab, var(--cx-accent) 20%, transparent);
	--cx-hover-line: color-mix(in oklab, var(--cx-accent) 62%, transparent);
	--cx-home-bg: linear-gradient(100deg, color-mix(in oklab, var(--cx-accent) 32%, transparent), color-mix(in oklab, var(--cx-accent) 14%, transparent));
	--cx-home-line: color-mix(in oklab, var(--cx-accent) 52%, transparent);
	--cx-shadow: 0 6px 18px rgba(0,0,0,.35);
	--cx-text:#eef4fb; --cx-strong:#ffffff; --cx-body:#c8d5e4; --cx-sub:#9fb0c4; --cx-sub2:#8698ae;
	--cx-red:#ff8496; --cx-green:#5fd99a; --cx-violet:#bda4ff; --cx-indigo:#7f9cff; --cx-amber:#ffc266; --cx-dash:#5a6d82;
	/* 대시보드 아이콘 배지용 비비드(밝은) 팔레트 — 라이트/다크 동일 값(밝은 원색) */
	--cx-red-v:#ff5b6b; --cx-amber-v:#ffa32e; --cx-indigo-v:#5b7cff; --cx-violet-v:#9b7bff; --cx-accent-v:#4d8dff; --cx-green-v:#22c07a;
	--cx-topbar-h:68px; --cx-sidebar-w:250px;
}
/* ---- 팔레트 (라이트 토글) -------------------------------------------------- */
body.catx-on.catx-light{
	--cx-accent-token: color-mix(in oklab, var(--cx-accent) 94%, #1d3350);
	--cx-accent-text:  color-mix(in oklab, var(--cx-accent) 66%, #0b1728);
	--cx-page-bg: radial-gradient(1200px 600px at 80% -10%, color-mix(in oklab, var(--cx-accent) 9%, #d4dde9) 0%, color-mix(in oklab, var(--cx-accent) 4%, #dfe5ee) 60%);
	--cx-page-solid: color-mix(in oklab, var(--cx-accent) 3%, #dfe5ee);
	--cx-header:#ffffff;
	--cx-sidebar: #ffffff; /* 시안: 사이드바는 순백(페이지 회색 배경과 대비되어 밝게 도드라짐) */
	--cx-card:#ffffff; --cx-panel:#ffffff; --cx-chip:#ffffff;
	--cx-row: color-mix(in oklab, var(--cx-accent) 5%, #eef3f9);
	--cx-track: color-mix(in oklab, var(--cx-accent) 10%, #c6d2e0);
	--cx-line: rgba(20,45,75,.22); --cx-line2: rgba(20,45,75,.32); --cx-line-soft: rgba(20,45,75,.13);
	--cx-hover-bg: color-mix(in oklab, var(--cx-accent) 16%, transparent);
	--cx-shadow: 0 2px 8px rgba(16,40,70,.10);
	--cx-text:#0d1a28; --cx-strong:#05101c; --cx-body:#37485e; --cx-sub:#4d5f76; --cx-sub2:#5b6d84;
	--cx-red:#c0223c; --cx-green:#0b7a48; --cx-violet:#5a37c7; --cx-indigo:#2340c9; --cx-amber:#9a5a00; --cx-dash:#9aabbe;
	--cx-red-v:#ff5b6b; --cx-amber-v:#ffa32e; --cx-indigo-v:#5b7cff; --cx-violet-v:#9b7bff; --cx-accent-v:#4d8dff; --cx-green-v:#22c07a;
}

/* ---- 페이지 바탕 ----------------------------------------------------------- */
body.catx-on{ background: var(--cx-page-solid); color: var(--cx-text); }
body.catx-on #admin_wrap{
	background: var(--cx-page-solid);
	margin-left: var(--cx-sidebar-w);
	padding-top: var(--cx-topbar-h);
	min-height: 100vh;
	color: var(--cx-text);
}

/* ============================ 상단 정보바 =================================== */
body.catx-on .catx-topbar{
	position: fixed; top:0; left:0; right:0; height: var(--cx-topbar-h);
	display:flex; align-items:center; gap:14px;
	padding:0 clamp(12px,2vw,24px) 0 12px;
	background: var(--cx-header);
	border-bottom:1px solid var(--cx-line);
	-webkit-backdrop-filter: blur(8px); backdrop-filter: blur(8px);
	z-index:30050; color: var(--cx-text);
	font-family:'Apple SD Gothic Neo','NotoSansKR','NanumBarunGothic','nanum gothic','나눔고딕','apple gothic','맑은 고딕','굴림',sans-serif;
	box-sizing:border-box;
}
body.catx-on .catx-topbar *{ box-sizing:border-box; }
body.catx-on .catx-tb-left{ display:flex; align-items:center; gap:12px; flex-shrink:1; min-width:0; overflow:visible; }
body.catx-on .catx-spacer{ flex:1; min-width:8px; }
body.catx-on .catx-navtoggle,
body.catx-on .catx-iconbtn{
	width:36px; height:36px; flex-shrink:0; display:flex; align-items:center; justify-content:center;
	border-radius:11px; background: var(--cx-chip); border:1px solid var(--cx-line2);
	color: var(--cx-body); cursor:pointer; transition:border-color .15s ease, color .15s ease, background .15s ease, transform .15s ease;
}
body.catx-on .catx-navtoggle:hover,
body.catx-on .catx-iconbtn:hover{ border-color: var(--cx-hover-line); color: var(--cx-accent-text); background: var(--cx-hover-bg); transform: translateY(-1px); }
body.catx-on .catx-brand{ display:flex; flex-direction:column; line-height:1.15; white-space:nowrap; cursor:pointer; min-width:0; overflow:hidden; }
body.catx-on .catx-brand-name, body.catx-on .catx-brand-sub{ overflow:hidden; text-overflow:clip; max-width:100%; }
body.catx-on .catx-brand-name{ font-size:15px; font-weight:700; letter-spacing:-.01em; color: var(--cx-strong); }
body.catx-on .catx-brand-sub{ margin-top:2px; font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace; font-size:var(--dash-font-10, 10px); color: var(--cx-sub2); letter-spacing:.14em; }

body.catx-on .catx-sysinfo{
	display:grid; grid-template-columns:auto auto; align-items:center; gap:4px 20px;
	padding:7px 14px; border-radius:11px; background: var(--cx-chip); border:1px solid var(--cx-line);
	font-size:var(--dash-font-11, 11px); white-space:nowrap; min-width:0; flex-shrink:1;
}
body.catx-on .catx-sys-item{ display:flex; align-items:center; gap:6px; color: var(--cx-sub); }
body.catx-on .catx-sys-item svg{ color: var(--cx-accent-token); }
body.catx-on .catx-sys-label{ color: var(--cx-sub); }
body.catx-on .catx-sys-value{ font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace; color: var(--cx-strong); }

body.catx-on .catx-tb-right{ display:flex; align-items:center; gap:10px; flex-shrink:0; }
body.catx-on .catx-live{ display:flex; align-items:center; gap:8px; font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace; font-size:var(--dash-font-11, 11px); color: var(--cx-sub); white-space:nowrap; }
body.catx-on .catx-live-dot{ width:6px; height:6px; border-radius:50%; background: var(--cx-accent-token); animation: catxPulse 1.8s ease-in-out infinite; }
body.catx-on .catx-live-date{ color: var(--cx-body); }
@keyframes catxPulse{ 0%,100%{ opacity:1; transform:scale(1);} 50%{ opacity:.35; transform:scale(.75);} }
body.catx-on .catx-tb-divider{ width:1px; height:22px; background: var(--cx-line2); }
/* 라벨 버튼(아이콘+문구): 다크모드/홈페이지/지도 */
body.catx-on .catx-labelbtn{ width:auto; padding:0 12px; gap:7px; }
/* 공통 헤더 바로가기: 채운 배경 위에 아이콘·문구를 흰색으로 표시 */
body.catx-on .catx-iconbtn.catx-tb-home{border-color:#3b82f6!important;background:#3b82f6!important;color:#fff!important;}
body.catx-on .catx-iconbtn.catx-tb-home svg{color:#fff!important;}
body.catx-on .catx-iconbtn.catx-tb-map{border-color:#10a174!important;background:#10a174!important;color:#fff!important;}
body.catx-on .catx-iconbtn.catx-tb-map svg{color:#fff!important;}
body.catx-on .catx-iconbtn.catx-tb-home:hover{border-color:#2563eb!important;background:#2563eb!important;color:#fff!important;}
body.catx-on .catx-iconbtn.catx-tb-map:hover{border-color:#059669!important;background:#059669!important;color:#fff!important;}

body.catx-on .catx-btn-label{ font-size:var(--dash-font-12, 12px); font-weight:500; white-space:nowrap; color:inherit; line-height:1; }
body.catx-on .catx-tb-home .catx-btn-label,
body.catx-on .catx-tb-map .catx-btn-label{ font-weight:700; }
/* 테마 버튼 문구: 다크=다크모드 / 라이트=라이트모드 (아이콘과 동일 규칙으로 토글) */
body.catx-on .catx-lbl-light{ display:none; }
body.catx-on .catx-lbl-dark{ display:inline; }
body.catx-on.catx-light .catx-lbl-light{ display:inline; }
body.catx-on.catx-light .catx-lbl-dark{ display:none; }
/* 좁은 폭에선 문구 숨겨 아이콘 전용으로(상단바 넘침 방지) */
@media (max-width:1240px){ body.catx-on .catx-btn-label{ display:none; } body.catx-on .catx-theme-toggle .catx-lbl-dark, body.catx-on.catx-light .catx-theme-toggle .catx-lbl-light{ display:none; } body.catx-on .catx-labelbtn{ width:36px; padding:0; } }

/* 테마 토글 아이콘 표시 전환 */
body.catx-on .catx-theme-toggle .catx-ico-sun{ display:none; }
body.catx-on .catx-theme-toggle .catx-ico-moon{ display:block; }
body.catx-on.catx-light .catx-theme-toggle .catx-ico-sun{ display:block; }
body.catx-on.catx-light .catx-theme-toggle .catx-ico-moon{ display:none; }

/* 계정 드롭다운 */
body.catx-on .catx-acct{ position:relative; }
body.catx-on .catx-acct-btn{
	display:flex; align-items:center; gap:10px; padding:5px 12px 5px 6px;
	border-radius:12px; background: var(--cx-chip); border:1px solid var(--cx-line); cursor:pointer;
	transition:border-color .15s ease, background .15s ease, transform .15s ease;
}
body.catx-on .catx-acct-btn:hover{ border-color: var(--cx-hover-line); background: var(--cx-hover-bg); transform: translateY(-1px); }
body.catx-on .catx-acct-avatar{ width:30px; height:30px; border-radius:10px; overflow:hidden; flex-shrink:0; background: var(--cx-track); display:flex; align-items:center; justify-content:center; }
body.catx-on .catx-acct-avatar img{ width:100%; height:100%; object-fit:cover; }
body.catx-on .catx-acct-name{ display:flex; align-items:baseline; gap:5px; font-size:var(--dash-font-12_5, 12.5px); font-weight:600; color: var(--cx-strong); white-space:nowrap; }
body.catx-on .catx-acct-role{ font-size:var(--dash-font-11_5, 11.5px); font-weight:400; color: var(--cx-body); }
body.catx-on .catx-acct-caret{ width:6px; height:6px; border-right:1.5px solid var(--cx-sub2); border-bottom:1.5px solid var(--cx-sub2); transform:rotate(45deg) translateY(-2px); transition:transform .15s ease; }
body.catx-on .catx-acct.open .catx-acct-caret{ transform:rotate(-135deg) translateY(-1px); }
body.catx-on .catx-acct-menu{
	position:absolute; top:calc(100% + 8px); right:0; z-index:30060; width:264px; display:none;
	border:1px solid var(--cx-line2); border-radius:14px; background: var(--cx-panel);
	box-shadow:0 18px 44px rgba(4,8,14,.4); overflow:hidden;
}
body.catx-on .catx-acct.open .catx-acct-menu{ display:block; }
body.catx-on .catx-acct-fields{ display:grid; grid-template-columns:auto 1fr; gap:9px 14px; padding:14px 16px; }
body.catx-on .catx-af-label{ font-size:var(--dash-font-11_5, 11.5px); color: var(--cx-accent-text); }
body.catx-on .catx-af-value{ font-size:var(--dash-font-11_5, 11.5px); color: var(--cx-strong); overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
body.catx-on .catx-acct-sep{ height:1px; background: var(--cx-line); }
body.catx-on .catx-acct-action{
	display:flex; align-items:center; gap:10px; margin:1px 6px; padding:9px 10px; border-radius:9px;
	font-size:var(--dash-font-12_5, 12.5px); color: var(--cx-text); cursor:pointer; text-decoration:none;
}
body.catx-on .catx-acct-action:first-of-type{ margin-top:6px; }
body.catx-on .catx-acct-action:last-of-type{ margin-bottom:6px; }
body.catx-on .catx-acct-action:hover{ background: var(--cx-hover-bg); }
body.catx-on .catx-acct-logout{ color: var(--cx-red); }
body.catx-on .catx-acct-logout svg{ color: var(--cx-red); }

/* ================= 스마트 알림 — 상단바 벨 버튼만 ==========================
 * 패널(.alarm_list_box / .catx-notifbox) 재스타일은 제거했다(요청: 알림 패널은
 * 모든 대시보드에서 공통 스타일 사용). 여기 남은 건 catx 상단바 고유 요소인
 * 벨 버튼·개수 배지뿐이며, 패널 모양에는 관여하지 않는다. */
body.catx-on .catx-bell{ position:relative; }
body.catx-on .catx-bell.is-on{ border-color:var(--cx-hover-line); background:var(--cx-hover-bg); color:var(--cx-accent-text); }
body.catx-on .catx-bell-badge{ position:absolute; top:-4px; right:-4px; min-width:16px; height:16px; padding:0 4px; border-radius:8px; background:#e0568a; color:#fff; font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace; font-size:var(--dash-font-9_5, 9.5px); line-height:1; display:flex; align-items:center; justify-content:center; border:2px solid var(--cx-header); }
body.catx-on .catx-notif-settings{ display:none; }
@media (min-width:993px){
	body.catx-on .catx-notif-settings.is-enabled{ height:36px; padding:0 12px; display:flex; align-items:center; justify-content:center; gap:6px; flex-shrink:0; border:1px solid #d9dee7; border-radius:11px; background:#f1f3f5; color:#475569; font-family:inherit; font-size:var(--dash-font-12, 12px); font-weight:700; white-space:nowrap; cursor:pointer; transition:border-color .15s ease,background .15s ease,color .15s ease,transform .15s ease; }
	body.catx-on .catx-notif-settings:hover{ border-color:#cbd5e1; background:#e5e7eb; color:#1f2937; transform:translateY(-1px); }
	body.catx-on .catx-notif-settings-ico{ flex:0 0 auto; font-size:16px; line-height:1; }
}
@media (min-width:993px) and (max-width:1240px){
	body.catx-on .catx-notif-settings{ width:36px; padding:0; }
	body.catx-on .catx-notif-settings-label{ display:none; }
}
/* 별도 토스트(새 알림) 는 카테고리에서 미사용 */
body.catx-on #admin_wrap header.style_admin_category .new_alarm_box{ display:none; }

/* ============================ 좌측 사이드바 ================================= */
body.catx-on #admin_wrap header.style_admin_category{
	position:fixed; top: var(--cx-topbar-h); left:0;
	width: var(--cx-sidebar-w); min-width: var(--cx-sidebar-w);
	height: calc(100vh - var(--cx-topbar-h));
	margin:0; padding:0;
	background: var(--cx-sidebar); border-right:1px solid var(--cx-line);
	box-shadow:none; z-index:30000; overflow:hidden;
	font-family:'Apple SD Gothic Neo','NotoSansKR','NanumBarunGothic','nanum gothic','나눔고딕','apple gothic','맑은 고딕','굴림',sans-serif;
	transition: transform .18s ease;
}
/* 상단 브랜드(.logo_top) 및 기존 모바일 헤더는 catx topbar 로 대체 → 숨김.
 * admin_header.css 의 .menu-trigger 가 모바일에서 검정 배경과 높은 z-index 로
 * 표시되어 iOS 새로고침 뒤 catx topbar 위를 덮는 문제를 함께 막는다. */
body.catx-on #admin_wrap header.style_admin_category .nav_open_btn,
body.catx-on #admin_wrap .admin9_mobile_menu_btn,
body.catx-on #admin_wrap #hamburger_icon{ display:none !important; }
@media (max-width:992px){
	body.catx-on #admin_wrap #hamburger_manu_box.admin9_mobile_header{ display:none !important; }
}
/* logo_top: 원본이 position:fixed·z-index:1002·display:block !important 라, 모달로 topbar z-index가 내려가면 위로 튀어나와 '헤더 두 개' 로 보임 → !important 로 확실히 숨김 */
body.catx-on #admin_wrap header.style_admin_category .logo_top,
body.catx-on #admin_wrap header.style_admin_category .logo.logo_top,
body.catx-on #admin_wrap header.style_admin_09 .logo.logo_top{ display:none !important; }

body.catx-on #admin_wrap header.style_admin_category .logo_btm{
	position:static; width:100%; height:100%; display:flex; flex-direction:column;
	margin:0; padding:12px 10px; background:transparent; overflow-y:auto; overflow-x:hidden;
}
body.catx-on #admin_wrap header.style_admin_category .logo_btm::-webkit-scrollbar{ width:7px; }
body.catx-on #admin_wrap header.style_admin_category .logo_btm::-webkit-scrollbar-thumb{ background: var(--cx-line2); border-radius:7px; }

/* 유저 박스: 카테고리는 계정정보를 상단바 계정 드롭다운으로 옮겼으므로 사이드바 유저박스는 숨김.
 * (내부 .alarm_list_box 는 JS(178줄)가 로드 시 body 로 이동시키므로 알림벨엔 영향 없음) */
body.catx-on #admin_wrap header.style_admin_category .admin_user_box{ display:none !important; }
body.catx-on #admin_wrap header.style_admin_category .admin_user_box .img_box{ width:38px; height:38px; border-radius:11px; overflow:hidden; }
body.catx-on #admin_wrap header.style_admin_category .admin_user_box .img_box img{ width:100%; height:100%; object-fit:cover; }
body.catx-on #admin_wrap header.style_admin_category .admin_user_box .img_cnt_top span,
body.catx-on #admin_wrap header.style_admin_category .admin_user_box .img_cnt_btm span{ color: var(--cx-sub); }
body.catx-on #admin_wrap header.style_admin_category .admin_user_box .img_cnt_mid span{ color: var(--cx-strong); font-weight:600; }
body.catx-on #admin_wrap header.style_admin_category .admin_user_box .user_btn{
	display:inline-flex; align-items:center; gap:6px; padding:7px 10px; margin:6px 4px 0 0;
	border-radius:9px; background: var(--cx-chip); border:1px solid var(--cx-line2);
	color: var(--cx-body); font-size:var(--dash-font-12, 12px); cursor:pointer;
}
body.catx-on #admin_wrap header.style_admin_category .admin_user_box .user_btn:hover{ border-color: var(--cx-hover-line); color: var(--cx-strong); }
body.catx-on #admin_wrap header.style_admin_category .admin_user_box .logout_btn i{ color: var(--cx-red); }

/* ------------------------------ 메뉴 (시안 구조) --------------------------- */
body.catx-on #admin_wrap header.style_admin_category .nav_view_box{ width:100%; flex:1; min-height:0; display:block; background:transparent; overflow:visible; }
body.catx-on #admin_wrap header.style_admin_category .admin_nav{ width:100%; background:transparent; }
body.catx-on .catx-nav{ display:flex; flex-direction:column; width:100%; }

/* 관리자 홈 */
body.catx-on .catx-home{ display:flex; align-items:center; gap:9px; margin:0 0 14px; padding:10px 18px 10px 19px; border-radius:12px; background:transparent; border:1px solid transparent; text-decoration:none; transition:background .12s; }
body.catx-on .catx-home:hover{ background:var(--cx-hover-bg); }
body.catx-on .catx-home.is-active{ background:var(--cx-home-bg); border-color:var(--cx-home-line); }
body.catx-on .catx-home.is-active .catx-home-ico{ color:var(--cx-accent-token); }
body.catx-on .catx-home-ico{ display:inline-flex; align-items:center; justify-content:center; color:var(--cx-body); }
body.catx-on .catx-home-txt{ font-size:13.5px; font-weight:400; color:var(--cx-strong); white-space:nowrap; }
body.catx-on .catx-home.is-active .catx-home-txt{ font-weight:700; }

/* 그룹 */
body.catx-on .catx-group{ margin-bottom:14px; }
/* 관리자 홈과 첫 그룹, 1차 그룹 사이에 같은 구분선을 둔다. */
body.catx-on .catx-home + .catx-group,
body.catx-on .catx-group + .catx-group{ padding-top:14px; position:relative; }
body.catx-on .catx-home + .catx-group::before,
body.catx-on .catx-group + .catx-group::before{ content:''; position:absolute; top:0; left:10px; right:10px; border-top:1px solid var(--cx-line2); }
/* 접힘(아이콘 레일) 상태: 그룹 구분선 숨김 + 구분선용 padding-top 제거(아이콘 간격 균일) */
body.catx-on.catx-nav-collapsed .catx-home + .catx-group::before,
body.catx-on.catx-nav-collapsed .catx-group + .catx-group::before{ display:none; }
body.catx-on.catx-nav-collapsed .catx-home + .catx-group,
body.catx-on.catx-nav-collapsed .catx-group + .catx-group{ padding-top:0; }
body.catx-on .catx-group-head{ display:flex; align-items:center; gap:8px; padding:6px 10px; cursor:pointer; user-select:none; border-radius:9px; transition:background .12s; }
body.catx-on .catx-group-head:hover{ background:var(--cx-hover-bg); }
body.catx-on .catx-group-head:hover .catx-group-title{ color:var(--cx-strong); }
body.catx-on .catx-group-code{ font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace; font-size:var(--dash-font-9_5, 9.5px); letter-spacing:.16em; }
/* 그룹 접기 캐럿(우측) + 접힘 시 메뉴 숨김 */
body.catx-on .catx-group-caret{ margin-left:auto; width:7px; height:7px; border-right:1.5px solid var(--cx-sub2); border-bottom:1.5px solid var(--cx-sub2); transform:rotate(45deg); transition:transform .15s; flex-shrink:0; }
body.catx-on .catx-group.is-collapsed .catx-group-caret{ transform:rotate(-45deg); }
body.catx-on:not(.catx-nav-collapsed) .catx-group.is-collapsed .catx-menu{ display:none; }
body.catx-on:not(.catx-nav-collapsed) .catx-group.is-collapsed{ margin-bottom:6px; }
/* [사용자 요청] CORE(중개업무)/OPS(운영관리)/WORK(업무지원) 은 접기 금지 = 항상 열림 + caret 제거.
   is-collapsed 가 붙어도 하위메뉴를 항상 노출(279행 override), caret 숨김, 헤드 커서 기본. SITE/CONF 는 그대로. */
body.catx-on:not(.catx-nav-collapsed) .catx-group[data-catx-group="CORE"].is-collapsed .catx-menu,
body.catx-on:not(.catx-nav-collapsed) .catx-group[data-catx-group="OPS"].is-collapsed .catx-menu,
body.catx-on:not(.catx-nav-collapsed) .catx-group[data-catx-group="WORK"].is-collapsed .catx-menu{ display:block; }
body.catx-on .catx-group[data-catx-group="CORE"] .catx-group-caret,
body.catx-on .catx-group[data-catx-group="OPS"] .catx-group-caret,
body.catx-on .catx-group[data-catx-group="WORK"] .catx-group-caret{ display:none; }
body.catx-on .catx-group[data-catx-group="CORE"] .catx-group-head,
body.catx-on .catx-group[data-catx-group="OPS"] .catx-group-head,
body.catx-on .catx-group[data-catx-group="WORK"] .catx-group-head{ cursor:default; }
/* [사용자 요청] 라이트모드만 사용 → 다크/라이트 전환 버튼 숨김 */
body.catx-on .catx-theme-toggle{ display:none !important; }
body.catx-on .catx-group-title{ font-size:var(--dash-font-11, 11px); font-weight:700; color:var(--cx-strong); white-space:nowrap; }

/* 메뉴 항목 (1차) */
body.catx-on .catx-menu{ margin:0 0 2px; }
body.catx-on .catx-menu-row{ display:flex; align-items:center; gap:9px; min-height:38px; padding:8px 18px 8px 20px; border-radius:10px; color:var(--cx-text); font-size:14px; font-weight:600; text-decoration:none; cursor:pointer; transition:background .12s, color .12s; }
body.catx-on .catx-menu-row:hover{ background:var(--cx-hover-bg); color:var(--cx-strong); }
body.catx-on .catx-menu.is-open > .catx-menu-row,
body.catx-on .catx-menu.is-active > .catx-menu-row{ background:var(--cx-hover-bg); color:var(--cx-strong); font-weight:700; }
body.catx-on .catx-mi{ display:flex; flex-shrink:0; color:var(--cx-sub); }
body.catx-on .catx-menu-row:hover .catx-mi,
body.catx-on .catx-menu.is-open > .catx-menu-row .catx-mi,
body.catx-on .catx-menu.is-active > .catx-menu-row .catx-mi{ color:var(--cx-accent-token); }
body.catx-on .catx-mn{ flex:1; min-width:0; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
body.catx-on .catx-mc{ font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace; font-size:var(--dash-font-9_5, 9.5px); color:var(--cx-sub2); flex-shrink:0; }
/* 알림 뱃지 (기존 헤더 방식) */
body.catx-on .catx-badge{ min-width:17px; height:17px; padding:0 5px; border-radius:9px; font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace; font-size:var(--dash-font-10, 10px); font-weight:600; line-height:17px; text-align:center; color:#fff; flex-shrink:0; }
body.catx-on .catx-badge-red{ background:#e0568a; }
body.catx-on .catx-badge-green{ background:#22b07d; }
body.catx-on .catx-badge-indigo{ background:#5b6bff; }
body.catx-on .catx-badge-amber{ background:#e0870f; }
body.catx-on .catx-leaf-txt{ flex:1; min-width:0; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
body.catx-on .catx-ca{ width:6px; height:6px; border-right:1.5px solid var(--cx-sub2); border-bottom:1.5px solid var(--cx-sub2); transform:rotate(45deg); transition:transform .15s; flex-shrink:0; margin-left:2px; }
body.catx-on .catx-menu.is-open > .catx-menu-row .catx-ca{ transform:rotate(-135deg); border-color:var(--cx-accent-token); }

/* 서브메뉴 */
body.catx-on .catx-sub{ display:none; margin:2px 0 8px 24px; padding-left:12px; border-left:1px solid var(--cx-line2); }
body.catx-on .catx-menu.is-open > .catx-sub{ display:block; }
body.catx-on .catx-leaf{ display:flex; align-items:center; gap:8px; padding:6px 8px; border-radius:8px; font-size:13px; color:var(--cx-body); text-decoration:none; cursor:pointer; transition:background .12s, color .12s; }
body.catx-on .catx-leaf:hover{ background:var(--cx-hover-bg); color:var(--cx-strong); }
body.catx-on .catx-leaf.is-active{ background:var(--cx-hover-bg); color:var(--cx-strong); font-weight:700; }
body.catx-on .catx-dash{ width:5px; height:1px; background:var(--cx-dash,#5a6d82); flex-shrink:0; }
body.catx-on .catx-leaf.is-active .catx-dash{ background:var(--cx-accent-token); }
body.catx-on .catx-leaf.catx-todo{ color:var(--cx-sub2); opacity:.65; }
/* Light sidebar submenu labels: keep category accents and dark palette unchanged. */
body.catx-on.catx-light .catx-sub .catx-leaf,
body.catx-on.catx-light .catx-sub .catx-sg-title{ color:#000; }
body.catx-on .catx-empty{ display:block; padding:6px 8px; font-size:var(--dash-font-11, 11px); color:var(--cx-sub2); }

/* 서브그룹 */
body.catx-on .catx-sg{ margin:6px 0 8px; }
body.catx-on .catx-sg-title{ display:flex; align-items:center; gap:6px; padding:0 8px 5px; font-size:var(--dash-font-11_5, 11.5px); color:var(--cx-sub); }
body.catx-on .catx-sg-dot{ width:3px; height:10px; border-radius:2px; flex-shrink:0; }
body.catx-on .catx-sg-items{ display:flex; flex-direction:column; gap:1px; padding-left:9px; }
/* 3차 메뉴(소그룹) 접기 — 기본은 펼침(.is-open). 제목 줄 전체가 토글 버튼이다. */
body.catx-on .catx-sg-title{ cursor:pointer; user-select:none; }
body.catx-on .catx-sg-title:hover{ color:var(--cx-body); }
body.catx-on .catx-sg-name{ flex:1; min-width:0; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
body.catx-on .catx-sg-caret{ flex:0 0 auto; display:inline-flex; align-items:center; justify-content:center;
	width:16px; height:16px; margin-right:-2px; opacity:.65; transition:transform .15s ease, opacity .15s ease; }
body.catx-on .catx-sg-title:hover .catx-sg-caret{ opacity:1; }
body.catx-on .catx-sg:not(.is-open) > .catx-sg-caret,
body.catx-on .catx-sg:not(.is-open) .catx-sg-caret{ transform:rotate(-90deg); }
body.catx-on .catx-sg:not(.is-open) > .catx-sg-items{ display:none; }

/* ============================ 본문(대시보드) =============================== */
/* 카테고리 전용 대시보드(admin_main_category)는 .catxd-* 로 다크 시안 스타일 적용.
 * 그 외 페이지(admin_item 등 base 0 뷰)는 다크 캔버스 + 원본 카드 유지. */
body.catx-on #admin_wrap > section:not(.catxd-wrap),
body.catx-on #admin_wrap > .main_box,
body.catx-on #admin_wrap section.main_box{ background:transparent; }

/* ---- 카테고리 대시보드 (시안 레이아웃) ---- */
body.catx-on .catxd-wrap{ display:flex; flex-direction:column; box-sizing:border-box; gap:14px; padding:clamp(12px,1.4vw,18px) clamp(12px,1.4vw,18px) clamp(14px,1.6vw,22px); font-family:'Apple SD Gothic Neo','NotoSansKR','NanumBarunGothic','nanum gothic','나눔고딕','apple gothic','맑은 고딕','굴림',sans-serif; color:var(--cx-text); }
/* 세로 채움: 콘텐츠가 적으면 상단바를 뺀 화면 높이만큼 채우고(min-height),
 * 콘텐츠가 많으면 min-height 를 넘어 자연스럽게 확장 → 페이지 스크롤. 고정 height/overflow 미사용. */
body.catx-on .catxd-wrap{ min-height: calc(100vh - var(--cx-topbar-h)); }
body.catx-on .catxd-wrap{ min-height: calc(100dvh - var(--cx-topbar-h)); }
/* 시안(@media≥1280 의 [data-row-staff],[data-row-stats]{flex:1 1 0}) 참고:
 * 두 콘텐츠 행이 남은 세로를 채우도록 flex-grow. 단 시안의 flex-basis:0(내부 스크롤 전제) 대신
 * flex:1 1 auto 로 두어, 콘텐츠가 많으면 축소 없이 확장(페이지 스크롤)하고 적으면 남은 공간을 채운다. */
body.catx-on .catxd-row-staff{ flex:1.9 1 auto; }   /* 2행(직원현황+오늘일정) 세로 확대 */
body.catx-on .catxd-row3{ flex:1 1 auto; }          /* 3행(방문/인기매물/최근문의) 세로 축소 */
/* 대시보드에서는 base 의 .admin_main_wrap 하단 여백을 제거해 불필요한 세로 스크롤 방지(대시보드 한정 스코프). */
body.catx-on #admin_wrap .admin_main_wrap:has(> .catxd-wrap){ padding-bottom:0; }
body.catx-on .catxd-head{ display:flex; align-items:flex-end; justify-content:space-between; gap:16px; flex-wrap:wrap; }
body.catx-on .catxd-head:not(:has(.catxd-quick)){display:none;}
@media(max-width:992px){
 body.catx-on #admin_wrap .admin_main_wrap:has(> .catxd-wrap){padding-top:0!important;}
 body.catx-on .catxd-wrap > .catxd-head{display:none!important;}
 body.catx-on .catxd-wrap > .catxi-mquick{margin-top:0!important;}
}
@media(min-width:993px){body.catx-on .catxd-wrap > .catxd-head{display:none!important;}}
body.catx-on .catxd-title{ margin:0; font-size:clamp(20px,2.2vw,26px); font-weight:600; letter-spacing:-.02em; color:var(--cx-strong); }
body.catx-on .catxd-sub{ margin:4px 0 0; font-size:var(--dash-font-12_5, 12.5px); color:var(--cx-sub); }
body.catx-on .catxd-sub b{ color:var(--cx-accent-token); }
body.catx-on .catxd-quick{ display:flex; gap:8px; flex-wrap:wrap; }
body.catx-on .catxd-qbtn{ width:64px; height:62px; display:flex; flex-direction:column; align-items:center; justify-content:center; gap:6px; border-radius:14px; background:var(--cx-chip); border:1px solid var(--cx-line); color:var(--cx-body); font-size:var(--dash-font-11, 11px); text-decoration:none; transition:transform .15s, border-color .15s, background .15s; }
body.catx-on .catxd-qbtn:hover{ transform:translateY(-2px) !important; border-color:var(--cx-hover-line) !important; background:var(--cx-hover-bg) !important; color:var(--cx-strong) !important; }
body.catx-on .catxd-qbtn:hover svg{ color:var(--cx-accent-text) !important; }
body.catx-on .catxd-qbtn svg{ color:var(--cx-accent-token); }

body.catx-on .catxd-kpis{ display:grid; grid-template-columns:repeat(auto-fit,minmax(150px,1fr)); gap:clamp(10px,1.2vw,14px); }
/* KPI 행: 6개 KPI 카드 + 우측 정보 패널(용량/만료/문자) — 넓은 화면은 한 줄에 전부 */
body.catx-on .catxd-kpirow{ display:grid; grid-template-columns:repeat(6,minmax(0,1fr)) minmax(300px,1.28fr); gap:clamp(8px,0.9vw,12px); }
@media (max-width:1180px){ body.catx-on .catxd-kpirow{ grid-template-columns:repeat(3,minmax(120px,1fr)); } body.catx-on .catxd-infopanel{ grid-column:1 / -1; } }
/* [40] 상단 KPI 를 2행(직원 업무 현황 | 오늘 일정) 패널 폭에 맞춰 4칸 + 3칸 두 그룹으로 정렬.
 * 2행(.catxd-row-staff)은 반반(1fr 1fr)이므로 그룹 합이 각각 (100% - g)/2 가 되어야 한다.
 *   앞 4칸 a: 4a + 3g = (W-g)/2  →  a = (W - 7g)/8
 *   뒤 3칸은 1:1:2 비율(계약서미작성 : 오래된매물 : 용량)
 *            4b + 2g = (W-g)/2  →  b = (W - 5g)/8, 용량칸 = 2b = (W - 5g)/4
 * 그룹 사이 간격(4번째↔5번째)도 g 라서 2행 gap 과 정확히 일치한다. */
@media (min-width:1181px){
	body.catx-on .catxd-kpirow{
		--cxk-g: clamp(10px,1.2vw,14px); /* .catxd-row-staff 과 동일한 gap */
		gap: var(--cxk-g);
		grid-template-columns:
			repeat(4, calc((100% - 7 * var(--cxk-g)) / 8))
			repeat(2, calc((100% - 5 * var(--cxk-g)) / 8))
			calc((100% - 5 * var(--cxk-g)) / 4);
	}
}
@media (max-width:720px){
	/* 모바일: 6개 KPI 카드를 2칸씩(3줄) */
	body.catx-on .catxd-kpirow{ grid-template-columns:repeat(2,minmax(0,1fr)); }
	body.catx-on .catxd-infopanel{ grid-column:1 / -1; }
	body.catx-on .catxd-kpi{ padding:12px 11px; }
	/* 모바일: 데이터(라벨+값)만 — 상태문구('전체 확인' 등)·진행바·방문 7일 그래프 숨김 */
	body.catx-on .catxd-kpi-note{ display:none; }
	body.catx-on .catxd-kpi-track{ display:none; }
	body.catx-on .catxd-visit-chart{ display:none; }
}
/* KPI 카드 상단: 코드(좌) + 상태문구(우) */
body.catx-on .catxd-kpi-top{ display:flex; align-items:center; justify-content:space-between; gap:8px; }
body.catx-on .catxd-kpi-note{ font-size:var(--dash-font-11, 11px); font-weight:500; white-space:nowrap; }
body.catx-on .catxd-kpi-desc{ margin-top:9px; font-size:var(--dash-font-12_5, 12.5px); color:var(--cx-sub); line-height:1.35; white-space:nowrap; overflow:hidden; text-overflow:ellipsis; background:color-mix(in oklab, var(--cx-row) 60%, var(--cx-card)); padding:5px 9px; border-radius:7px; }
/* 정보 패널 — 용량/만료일/잔여문자 한 줄 3칸(구분선), 아이콘+라벨 위·값+버튼 아래. 게이지 없음(단순화). */
body.catx-on .catxd-infopanel{ display:flex; align-items:stretch; gap:0; padding:12px 18px; border-radius:16px; background:var(--cx-card); border:1px solid var(--cx-line); box-shadow:var(--cx-shadow); min-height:0; flex-wrap:wrap; }
body.catx-on .catxd-info-cell{ flex:1 1 0; min-width:0; display:flex; flex-direction:row; align-items:center; justify-content:space-between; gap:8px; padding:0 16px; }
body.catx-on .catxd-infopanel > .catxd-info-cell:first-child{ padding-left:0; }
body.catx-on .catxd-infopanel > .catxd-info-cell:last-child{ padding-right:0; }
body.catx-on .catxd-info-text{ min-width:0; display:flex; flex-direction:column; gap:6px; }
body.catx-on .catxd-info-label{ display:flex; align-items:center; gap:6px; min-height:16px; font-size:var(--dash-font-11_5, 11.5px); color:var(--cx-sub); white-space:nowrap; }
body.catx-on .catxd-info-label svg{ color:var(--cx-accent-token); flex-shrink:0; }
body.catx-on .catxd-info-val{ font-size:15px; color:var(--cx-strong); line-height:1.2; white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }
body.catx-on .catxd-info-val b{ font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace; font-weight:700; }
body.catx-on .catxd-info-val em{ font-style:normal; font-size:var(--dash-font-12, 12px); color:var(--cx-sub); font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace; }
body.catx-on .catxd-info-div{ flex:none; align-self:center; width:1px; height:30px; background:var(--cx-line2); }
/* 아이콘 원형 버튼(항상 이 크기) — 용량추가/문자충전=핑크, 연장신청도 동일 핑크 계열로 통일 */
body.catx-on .catxd-info-btn{ flex:0 0 auto; align-self:center; width:26px; height:26px; border-radius:50%; display:inline-flex; align-items:center; justify-content:center; border:none; padding:0; cursor:pointer; transition:filter .12s ease; }
body.catx-on .catxd-info-btn svg{ display:block; }
body.catx-on .catxd-info-btn:hover{ filter:brightness(1.08); }
body.catx-on .catxd-info-btn[hidden]{ display:none !important; }
/* 정보패널 버튼 텍스트(용량추가/연장신청/문자충전): 기본(PC 포함) 숨김 — 매물연동용(42) 모바일에서만 노출 */
body.catx-on .catxi-sync .catxd-btn-tx{ display:none; }
body.catx-on .catxd-info-btn.is-pink,
body.catx-on .catxd-info-btn.catxd-btn-extend{ background:color-mix(in oklab, #e0568a 18%, var(--cx-card)); color:#f3a8c6; animation:catxiExtendBlink 1.5s ease-in-out infinite; }
body.catx-light .catxd-info-btn.is-pink,
body.catx-light .catxd-info-btn.catxd-btn-extend{ background:color-mix(in oklab, #e0568a 14%, #fff); color:#c31e63; }
@media (prefers-reduced-motion: reduce){ body.catx-on .catxd-info-btn.is-pink, body.catx-on .catxd-info-btn.catxd-btn-extend{ animation:none; } }
/* 잔여문자수 버튼(문자충전요청)만 파란색 계열 */
body.catx-on #catxd-sms-btn{ background:color-mix(in oklab, var(--cx-accent) 18%, var(--cx-card)); color:var(--cx-accent-text); }
body.catx-light #catxd-sms-btn{ background:color-mix(in oklab, var(--cx-accent) 14%, #fff); color:var(--cx-accent-text); }
/* [직원관리용 40 전용] 용량 단독 한 줄 + 만료일·잔여문자수 한 줄로 2줄 배치.
 * 매물연동용(42, .catxi-sync)은 기존 3칸 한 줄 유지 — :not(.catxi-sync) 로 40만 스코프. */
body.catx-on .catxd-wrap:not(.catxi-sync) .catxd-infopanel{ display:grid; grid-template-columns:1fr auto 1fr; row-gap:12px; column-gap:16px; }
body.catx-on .catxd-wrap:not(.catxi-sync) .catxd-infopanel > .catxd-info-cell{ padding:0; }
body.catx-on .catxd-wrap:not(.catxi-sync) .catxd-infopanel > .catxd-info-cell:nth-child(1){ grid-column:1 / -1; grid-row:1; }
body.catx-on .catxd-wrap:not(.catxi-sync) .catxd-infopanel > .catxd-info-div:nth-child(2){ display:none; }
body.catx-on .catxd-wrap:not(.catxi-sync) .catxd-infopanel > .catxd-info-cell:nth-child(3){ grid-column:1; grid-row:2; }
body.catx-on .catxd-wrap:not(.catxi-sync) .catxd-infopanel > .catxd-info-div:nth-child(4){ grid-column:2; grid-row:2; }
body.catx-on .catxd-wrap:not(.catxi-sync) .catxd-infopanel > .catxd-info-cell:nth-child(5){ grid-column:3; grid-row:2; }
/* 용량 옆 사용률 게이지(40 전용) */
body.catx-on .catxd-wrap:not(.catxi-sync) .catxd-info-gauge{ flex:1 1 auto; min-width:40px; margin:0 10px; }
body.catx-on .catxd-wrap:not(.catxi-sync) .catxd-info-gauge-track{ height:8px; border-radius:6px; background:var(--cx-track); overflow:hidden; }
body.catx-on .catxd-wrap:not(.catxi-sync) .catxd-info-gauge-fill{ height:100%; border-radius:6px; background:var(--cx-accent); transition:width .3s ease; }
body.catx-on .catxd-wrap:not(.catxi-sync) .catxd-info-gauge-fill.is-mid{ background:var(--cx-amber); }
body.catx-on .catxd-wrap:not(.catxi-sync) .catxd-info-gauge-fill.is-high{ background:#e0568a; }
/* [직원관리용 40 · 관리자(비직원) 분기 전용] 정보패널이 .catxd-info-line + 게이지 마크업을 쓰는데, 직원분기 단순화(info-cell) 때 이 계열의 넓은폭 기본 CSS가 빠져 KPI행 우측 칸(≈300px)에서 세로로 눌려 깨짐. 넓은폭에서 2줄(용량+게이지 / 만료일·문자)로 스택 복구. min-width:701 로 게이팅 → ≤700 기존 모바일 규칙(1396~) 불변, :has(>info-line) 로 직원분기·매물연동42(info-cell) 는 미해당. */
@media (min-width:701px){
	body.catx-on .catxd-infopanel:has(> .catxd-info-line){ flex-direction:column; flex-wrap:nowrap; gap:12px; align-items:stretch; }
	body.catx-on .catxd-info-line{ display:flex; align-items:center; flex-wrap:wrap; gap:6px 10px; width:100%; min-width:0; }
	body.catx-on .catxd-info-line > .catxd-info-cell{ flex:0 1 auto; }
	body.catx-on .catxd-info-line:first-child > .catxd-info-cell{ flex:0 0 auto; }
	body.catx-on .catxd-info-line > .catxd-info-gauge{ flex:1 1 auto; min-width:40px; }
	body.catx-on .catxd-info-gauge-track{ height:6px; border-radius:4px; background:var(--cx-line2); overflow:hidden; }
	body.catx-on .catxd-info-gauge-fill{ height:100%; border-radius:4px; background:var(--cx-accent); }
	body.catx-on .catxd-info-gauge-fill.is-mid{ background:var(--cx-amber-v,#e5a13a); }
	body.catx-on .catxd-info-gauge-fill.is-high{ background:#e0568a; }
	body.catx-on .catxd-info-line > .catxd-info-div{ flex:0 0 auto; align-self:center; width:1px; height:26px; background:var(--cx-line2); }
}
@media(max-width:640px){
	body.catx-on .catxd-infopanel{ flex-wrap:wrap; row-gap:12px; }
	body.catx-on .catxd-info-cell{ flex:1 1 40%; padding:0 !important; }
	body.catx-on .catxd-info-div{ display:none; }
}
body.catx-on .catxd-kpi{ display:block; padding:14px 16px; border-radius:16px; background:var(--cx-card); border:1px solid var(--cx-line); box-shadow:var(--cx-shadow); text-decoration:none; transition:transform .15s, border-color .15s; }
/* 신규 문의(미확인 문의) 카드만 분홍 강조 */
body.catx-on .catxd-kpirow > .catxd-kpi:nth-child(2) .catxd-kpi-desc{ background:color-mix(in oklab, #ec6ea0 14%, var(--cx-card)); color:#c94f7c; font-weight:600; }
body.catx-on .catxd-kpi:hover{ transform:translateY(-2px); border-color:var(--cx-hover-line); }
body.catx-on .catxd-kpi-code{ font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace; font-size:var(--dash-font-10, 10px); letter-spacing:.16em; font-weight:700; }
body.catx-on .catxd-kpi-label{ font-size:13.5px; font-weight:600; color:var(--cx-body); margin-top:10px; }
body.catx-on .catxd-kpi-val{ display:flex; align-items:baseline; gap:6px; margin-top:2px; }
body.catx-on .catxd-kpi-val span{ font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace; font-size:28px; font-weight:700; line-height:1.1; color:var(--cx-strong); }
body.catx-on .catxd-kpi-val em{ font-style:normal; font-size:var(--dash-font-12_5, 12.5px); color:var(--cx-sub); }
body.catx-on .catxd-kpi-track{ display:none; }
body.catx-on .catxd-kpi-fill{ height:100%; border-radius:3px; }
/* KPI 카드 클릭 → 매물 목록 팝업(button 태그). .catxd-kpi 가 배경·테두리·그림자를 이미 담당하므로 브라우저 버튼 기본값만 해제 */
body.catx-on button.catxd-kpi{ appearance:none; -webkit-appearance:none; font:inherit; text-align:left; color:inherit; }
body.catx-on button.catxd-kpi-pop{ cursor:pointer; }

body.catx-on .catxd-row2{ display:grid; grid-template-columns:repeat(auto-fit,minmax(320px,1fr)); gap:clamp(10px,1.2vw,14px); }
body.catx-on .catxd-panel{ display:flex; flex-direction:column; min-height:160px; border-radius:18px; background:var(--cx-panel); border:1px solid var(--cx-line); box-shadow:var(--cx-shadow); padding:16px; }
body.catx-on .catxd-panel-head{ display:flex; align-items:center; justify-content:space-between; margin-bottom:12px; }
body.catx-on .catxd-panel-head h2{ margin:0; font-size:15px; font-weight:700; letter-spacing:-.01em; color:var(--cx-strong); }
body.catx-on .catxd-panel-note{ font-size:var(--dash-font-11, 11px); font-weight:500; letter-spacing:0; color:var(--cx-sub); }
/* 패널 헤더 '전체보기/자세히 보기' — 그냥 텍스트로 보여 클릭 가능한지 인지 어렵던 문제 → 두 클래스를 동일한 pill 버튼으로 통일 */
body.catx-on .catxd-more,
body.catx-on .catxd-panel-more{ display:inline-flex; align-items:center; flex-shrink:0; font-family:inherit; font-size:var(--dash-font-11, 11px); font-weight:500; line-height:1.4; color:var(--cx-body); background:var(--cx-panel); border:1px solid var(--cx-line-soft); border-radius:7px; padding:2px 8px; text-decoration:none; white-space:nowrap; cursor:pointer; transition:background .12s ease, border-color .12s ease; }
body.catx-on .catxd-more:hover,
body.catx-on .catxd-panel-more:hover{ background:var(--cx-row); border-color:var(--cx-line2); color:var(--cx-strong); text-decoration:none; }
/* 내부 스크롤을 만들지 않고 콘텐츠 높이만큼 자연 확장 → 페이지 스크롤로 통일(이중 스크롤 방지). */
body.catx-on .catxd-scroll{ overflow:visible; }

body.catx-on .catxd-sch{ display:flex; align-items:center; gap:12px; padding:6px 12px; border-radius:10px; background:color-mix(in oklab,var(--cx-row) 35%,white); border:1px solid var(--cx-line-soft); margin-bottom:6px; }
body.catx-on .catxd-sch-time{ font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace; font-size:var(--dash-font-12, 12px); color:var(--cx-accent-text); min-width:42px; white-space:nowrap; }
body.catx-on .catxd-sch-title{ flex:1; font-size:13px; color:var(--cx-text); overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
body.catx-on .catxd-sch-tag{ flex-shrink:0; font-size:var(--dash-font-10_5, 10.5px); font-weight:700; padding:3px 9px; border-radius:7px; white-space:nowrap; letter-spacing:.01em; }
body.catx-on .catxd-logtag{ min-width:66px; padding-left:6px; padding-right:6px; text-align:center; box-sizing:border-box; }
body.catx-on .catxd-sch-dev{ flex-shrink:0; font-size:var(--dash-font-11, 11px); color:var(--cx-sub2); font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace; }
body.catx-on .catxd-logrow .catxd-sch-who{ width:82px; min-width:82px; flex-shrink:0; overflow:hidden; text-overflow:ellipsis; }
/* 관리자/직원 구분 태그(직원카드·로그인이력 공용) */
body.catx-on .catxd-sttype{ flex-shrink:0; display:inline-block; margin-right:5px; font-size:var(--dash-font-10, 10px); font-weight:700; padding:1px 6px; border-radius:5px; white-space:nowrap; letter-spacing:.01em; vertical-align:middle; }
body.catx-on .catxd-logrow .catxd-sttype{ min-width:42px; text-align:center; box-sizing:border-box; margin-right:0; }
body.catx-on .catxd-sttype-admin{ background:color-mix(in oklab,#8b5cf6 15%,transparent); color:#6d3fd4; }
body.catx-on .catxd-sttype-staff{ background:color-mix(in oklab,#2c4a8f 15%,transparent); color:#26386e; }
/* (.catxd-panel-more 스타일은 위 .catxd-more 통합 규칙으로 일원화) */
body.catx-on a.catxd-sch{ text-decoration:none; color:inherit; cursor:pointer; transition:background .12s,border-color .12s; }
body.catx-on a.catxd-sch:hover{ background:var(--cx-hover-bg); border-color:var(--cx-hover-line); }

/* 로그인 이력 모바일: 고정폭 합이 카드 폭을 넘겨 시간(.catxd-sch-time)이 42px 로 눌리며
 * 관리자/직원 배지 위로 글자가 겹치던 문제 → 시간은 축소 금지, 이름이 남은 폭을 차지하게 전환 */
@media (max-width:700px){
	body.catx-on .catxd-logrow{ gap:6px; padding:6px 8px; }
	body.catx-on .catxd-logrow .catxd-sch-time{ flex:0 0 auto; min-width:0; font-size:var(--dash-font-11, 11px); }
	body.catx-on .catxd-logrow .catxd-sttype{ min-width:0; padding:1px 5px; }
	body.catx-on .catxd-logrow .catxd-sch-who{ width:auto; min-width:0; flex:1 1 auto; }
	body.catx-on .catxd-logrow .catxd-sch-title{ display:none; }
	body.catx-on .catxd-logrow .catxd-sch-dev{ font-size:var(--dash-font-10_5, 10.5px); }
	body.catx-on .catxd-logrow .catxd-logtag{ min-width:0; font-size:var(--dash-font-10, 10px); padding:3px 7px; }
}

body.catx-on .catxd-alert{ display:flex; align-items:center; gap:10px; padding:11px 12px; border-radius:11px; background:var(--cx-card); border:1px solid var(--cx-line); margin-bottom:8px; text-decoration:none; transition:background .12s, border-color .12s; }
body.catx-on .catxd-alert:hover{ background:var(--cx-hover-bg); border-color:var(--cx-hover-line); }
body.catx-on .catxd-alert-dot{ width:8px; height:8px; border-radius:50%; flex-shrink:0; }
/* 고객문의 카드도 업무현황처럼 아이콘 타일(도트 대체) — 높이도 업무현황과 동일해짐 */
body.catx-on .catxd-alert-ico{ width:26px; height:26px; border-radius:8px; display:inline-flex; align-items:center; justify-content:center; flex-shrink:0; }
body.catx-on .catxd-alert-ico svg{ stroke-width:1.9; }
body.catx-on .catxd-alert-label{ flex:1; font-size:13px; color:var(--cx-text); }
body.catx-on .catxd-alert-val{ text-align:right; margin-left:auto; font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace; font-size:13.5px; font-weight:700; }

body.catx-on .catxd-stats{ display:grid; grid-template-columns:1fr 1fr; gap:12px; }
body.catx-on .catxd-stat{ display:flex; flex-direction:column; gap:3px; padding:12px; border-radius:12px; background:var(--cx-row); border:1px solid var(--cx-line-soft); }
body.catx-on .catxd-stat-l{ font-size:var(--dash-font-11_5, 11.5px); color:var(--cx-sub); }
body.catx-on .catxd-stat-v{ font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace; font-size:22px; font-weight:700; color:var(--cx-strong); }

body.catx-on .catxd-work{ display:flex; align-items:center; gap:10px; padding:11px 12px; border-radius:11px; background:var(--cx-card); border:1px solid var(--cx-line); margin-bottom:8px; transition:background .12s, border-color .12s; }
body.catx-on .catxd-work:hover{ background:var(--cx-hover-bg); border-color:var(--cx-hover-line); }
body.catx-on a.catxd-work{ text-decoration:none; color:inherit; cursor:pointer; }
body.catx-on .catxd-work-code{ font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace; font-size:var(--dash-font-9_5, 9.5px); color:var(--cx-sub2); width:24px; }
/* 업무 현황 항목 앞 아이콘(숫자 대체) */
body.catx-on .catxd-work-ico{ width:26px; height:26px; border-radius:8px; display:inline-flex; align-items:center; justify-content:center; flex-shrink:0; }
body.catx-on .catxd-work-ico svg{ stroke-width:1.9; }
body.catx-on .catxd-work-l{ flex:1; font-size:13px; color:var(--cx-text); }
body.catx-on .catxd-work-v{ font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace; font-size:13.5px; font-weight:700; color:var(--cx-strong); }
/* 업무 현황 하단 2칸(전체 매물 | 전체 고객) */
body.catx-on .catxd-work-pair{ display:grid; grid-template-columns:1fr 1fr; gap:8px; }
body.catx-on .catxd-work-pair .catxd-work{ margin-bottom:0; }
body.catx-on .catxd-work-half{ gap:6px; }
body.catx-on .catxd-work-half .catxd-work-code{ width:auto; }
body.catx-on .catxd-work-half .catxd-work-l{ font-size:var(--dash-font-12, 12px); }
/* 직원관리용(관리자) 3행 세로 컴팩트 (스태프 로그인 .catxi-dash 는 제외) */
body.catx-on .catxd-wrap:not(.catxi-dash) .catxd-row3 .catxd-panel{ padding:14px; }
body.catx-on .catxd-wrap:not(.catxi-dash) .catxd-row3 .catxd-panel-head{ margin-bottom:9px; }
body.catx-on .catxd-wrap:not(.catxi-dash) .catxd-row3 .catxd-alert,
body.catx-on .catxd-wrap:not(.catxi-dash) .catxd-row3 .catxd-work{ padding:8px 11px; margin-bottom:6px; }
body.catx-on .catxd-wrap:not(.catxi-dash) .catxd-row3 .catxd-visit-row{ margin-top:8px; }
body.catx-on .catxd-wrap:not(.catxi-dash) .catxd-row3 .catxd-visit-chart{ margin-top:6px; flex:1; min-height:120px; }
body.catx-on .catxd-wrap:not(.catxi-dash) .catxd-row3 .catxd-vc-bars{ flex:1; min-height:90px; }
body.catx-on .catxd-wrap:not(.catxi-dash) .catxd-row3 .catxd-vc-bar{ height:100%; }

body.catx-on .catxd-todo-tag{ font-size:var(--dash-font-10_5, 10.5px); font-weight:600; padding:3px 9px; border-radius:7px; background:var(--cx-hover-bg); color:var(--cx-amber); border:1px solid var(--cx-line2); }
body.catx-on .catxd-todo-note{ font-size:var(--dash-font-12, 12px); color:var(--cx-sub); margin-bottom:8px; }
body.catx-on .catxd-todo-list ul{ margin:0; padding-left:18px; display:flex; flex-direction:column; gap:5px; }
body.catx-on .catxd-todo-list li{ font-size:var(--dash-font-12_5, 12.5px); color:var(--cx-body); }
body.catx-on .catxd-empty{ padding:24px 0; text-align:center; font-size:var(--dash-font-12_5, 12.5px); color:var(--cx-sub); }

/* ---- 시안 배치·반응형: 2열(직원현황+오늘일정) / 3열(방문·알림·업무) ----
 * 시안 브레이크포인트 그대로: stats 3열 → ≤1279 2열(방문현황 상단 전체폭) → ≤760 1열.
 * 직원+일정 행은 auto-fit(minmax 450) 로 폭 부족 시 자동 1열. */
body.catx-on .catxd-row-staff{ display:grid; grid-template-columns:repeat(auto-fit,minmax(min(450px,100%),1fr)); gap:clamp(10px,1.2vw,14px); }
body.catx-on .catxd-row3{ display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:clamp(10px,1.2vw,14px); }
@media (max-width:1279px){
	body.catx-on .catxd-row3{ grid-template-columns:repeat(2,minmax(0,1fr)); }
	body.catx-on .catxd-row3 > section:first-child{ grid-column:1 / -1; }
}
@media (max-width:760px){
	body.catx-on .catxd-row3{ grid-template-columns:minmax(0,1fr); }
	body.catx-on .catxd-row3 > section:first-child{ grid-column:auto; }
}
body.catx-on .catxd-panel-body{ flex:1; min-height:0; }
body.catx-on .catxd-h2sub{ color:var(--cx-sub2); font-weight:400; font-size:var(--dash-font-12, 12px); }

/* 직원 업무 현황 테이블 */
body.catx-on .catxd-sttable{ display:flex; flex-direction:column; }
body.catx-on .catxd-sthead,
body.catx-on .catxd-strow{ display:grid; grid-template-columns:minmax(170px,1.8fr) minmax(50px,.7fr) minmax(50px,.7fr) minmax(64px,.9fr) minmax(64px,.9fr) minmax(74px,1fr); gap:6px 8px; align-items:center; }
body.catx-on .catxd-sthead{ font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace; font-size:var(--dash-font-12, 12px); font-weight:600; letter-spacing:0; line-height:1.5; color:var(--cx-sub); background:var(--cx-row); border:1px solid var(--cx-line-soft); border-radius:9px; padding:8px 10px; margin-bottom:6px; }
/* [사용자 요청] 직원 업무 현황 테이블 헤더 고정 — 목록(행)만 스크롤(스크롤 컨테이너 .catxd-scroll 안에서 sticky).
   --cx-row 는 불투명(color-mix, 알파없음)이라 행이 뒤로 비치지 않음 → 기존 배경 유지, sticky 만 적용. */
body.catx-on .catxd-panel-body.catxd-scroll .catxd-sthead{ position:sticky; top:0; z-index:3; }
body.catx-on .catxd-sthead .r,
body.catx-on .catxd-strow .r{ text-align:right; }
body.catx-on .catxd-strow > .r:not(.catxd-stlast){font-weight:700;}
body.catx-on .catxd-label-mobile{display:none;}
body.catx-on .catxd-strow{ padding:11px 10px; border-bottom:1px solid var(--cx-line-soft); font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace; font-size:13px; color:var(--cx-strong); }
body.catx-on .catxd-strow-sum{ background:var(--cx-row); border:1px solid var(--cx-line-soft); border-radius:10px; }
body.catx-on .catxd-stname{ display:flex; align-items:center; gap:9px; min-width:0; font-family:'Apple SD Gothic Neo','NotoSansKR','NanumBarunGothic','nanum gothic','나눔고딕','apple gothic','맑은 고딕','굴림',sans-serif; }
body.catx-on .catxd-stpic{ flex-shrink:0; width:30px; height:30px; border-radius:9px; overflow:hidden; background:var(--cx-track); border:1px solid var(--cx-line-soft); display:flex; align-items:center; justify-content:center; }
body.catx-on .catxd-stpic img{ width:100%; height:100%; object-fit:cover; display:block; }
body.catx-on .catxd-stnamewrap{ display:flex; flex:1; flex-direction:column; min-width:0; gap:1px; }
body.catx-on .catxd-stnm{ display:flex; align-items:center; gap:5px; font-size:13px; color:var(--cx-text); overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
body.catx-on .catxd-stmail{ font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace; font-size:var(--dash-font-10_5, 10.5px); color:var(--cx-sub2); overflow:hidden; text-overflow:ellipsis; white-space:nowrap; max-width:100%; }
body.catx-on .catxd-stlast .catxd-login-device{display:block;font-size:var(--dash-font-11, 11px);color:var(--cx-sub);line-height:1.5;}
body.catx-on .catxd-ston{ flex-shrink:0; width:7px; height:7px; border-radius:50%; background:var(--cx-green); box-shadow:0 0 0 2px color-mix(in oklab, var(--cx-green) 22%, transparent); }
/* 이름 뒤 직급 */
body.catx-on .catxd-strank{ flex-shrink:0; font-size:var(--dash-font-11, 11px); font-weight:600; color:var(--cx-sub); }
/* 본인 계정 '나' 배지 */
body.catx-on .catxd-mebadge{ flex-shrink:0; font-size:var(--dash-font-10, 10px); font-weight:700; line-height:1; padding:2px 6px; border-radius:6px; color:var(--cx-accent); background:color-mix(in oklab, var(--cx-accent) 14%, transparent); border:1px solid color-mix(in oklab, var(--cx-accent) 38%, transparent); }
body.catx-on .catxd-stlogout{ flex-shrink:0; margin-left:4px; width:auto; height:28px; gap:4px; display:inline-flex; align-items:center; justify-content:center; padding:0; border-radius:8px; background:transparent; border:1px solid var(--cx-line); color:var(--cx-sub); cursor:pointer; transition:all .12s; }
body.catx-on .catxd-stlogout{padding:0 7px;border-color:#10a174;font-size:var(--dash-font-11, 11px);font-weight:700;white-space:nowrap;}  /* 접속중 문구 굵게(미접속은 그대로) */
body.catx-on .catxd-stlogout svg{color:#10a174;flex-shrink:0;}
body.catx-on .catxd-stlogout:hover{background:color-mix(in oklab, #10a174 8%, transparent);}
@keyframes catxOnlineBorder{0%,100%{border-color:#10a174;}50%{border-color:#a7dfc9;}}
@keyframes catxOnlineIcon{0%,100%{color:#10a174;}50%{color:#a7dfc9;}}
@media(prefers-reduced-motion:no-preference){
 body.catx-on .catxd-stlogout{animation:catxOnlineBorder 2s ease-in-out infinite;}
 body.catx-on .catxd-stlogout svg{animation:catxOnlineIcon 2s ease-in-out infinite;}
}
body.catx-on .catxd-stlast{ font-size:var(--dash-font-11, 11px); }
body.catx-on .catxd-dim{ color:var(--cx-sub2); }
body.catx-on .catxd-stnote{ margin-top:10px; font-size:var(--dash-font-12, 12px); line-height:1.55; color:var(--cx-sub); }

/* 오늘 일정: 담당자 배지 */
body.catx-on .catxd-sch-who{ font-size:var(--dash-font-12, 12px); color:var(--cx-sub); min-width:46px; }

/* 홈페이지 방문 현황 */
body.catx-on .catxd-visit-nums{ display:grid; grid-template-columns:repeat(3,1fr); gap:8px; }
body.catx-on .catxd-visit-n{ display:flex; flex-direction:column; gap:4px; padding:9px 11px; border-radius:10px; background:color-mix(in oklab,var(--cx-row) 45%,white); border:1px solid var(--cx-line-soft); }
body.catx-on .catxs-body:has(.catxd-visit-chart){ display:flex; flex-direction:column; }
body.catx-on .catxd-vc-title{ font-size:var(--dash-font-11, 11px); font-weight:600; color:var(--cx-sub); margin:11px 0 4px; }
body.catx-on .catxd-visit-l{ display:flex; align-items:center; gap:4px; font-size:var(--dash-font-12_5, 12.5px); font-weight:600; color:var(--cx-sub); white-space:nowrap; }
body.catx-on .catxd-visit-v{ font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace; font-size:clamp(17px,2vw,22px); font-weight:700; line-height:1.1; color:var(--cx-strong); }
body.catx-on .catxd-visit-v.sub{ color:var(--cx-body); }
body.catx-on .catxd-visit-bars{ display:flex; align-items:flex-end; gap:14px; height:76px; margin-top:14px; padding-top:8px; border-top:1px solid var(--cx-line-soft); }
body.catx-on .catxd-vbar{ flex:1; display:flex; flex-direction:column; align-items:center; justify-content:flex-end; height:100%; gap:5px; }
body.catx-on .catxd-vbar-fill{ width:100%; max-width:46px; border-radius:6px 6px 0 0; min-height:6px; }
body.catx-on .catxd-vbar-d{ font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace; font-size:var(--dash-font-10, 10px); color:var(--cx-sub2); }
/* 방문 현황: 매물 조회 row + 7일 트렌드 차트(시안 레이아웃) */
body.catx-on .catxd-visit-row{ display:flex; align-items:center; gap:8px; margin-top:12px; padding:7px 10px; border-radius:9px; background:var(--cx-row); border:1px solid var(--cx-line-soft); }
body.catx-on .catxd-visit-row-l{ flex:1; min-width:0; font-size:var(--dash-font-12, 12px); color:var(--cx-body); }
body.catx-on .catxd-visit-row-v{ font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace; font-size:13.5px; font-weight:600; color:var(--cx-strong); }
body.catx-on .catxd-visit-row-u{ font-size:var(--dash-font-10_5, 10.5px); color:var(--cx-sub); }
body.catx-on .catxd-visit-chart{ margin-top:12px; display:flex; flex-direction:column; gap:5px; }
body.catx-on .catxd-vc-bars{ flex:1; min-height:60px; display:flex; align-items:flex-end; gap:5px; }
body.catx-on .catxd-vc-bar{ flex:1; display:flex; align-items:flex-end; justify-content:center; height:60px; }
body.catx-on .catxd-vc-fill{ position:relative; width:100%; max-width:22px; min-height:6px; border-radius:5px 5px 0 0; background:var(--cx-accent); opacity:.55; transition:opacity .12s; }
body.catx-on .catxd-vc-bar:last-child .catxd-vc-fill{ opacity:1; }
body.catx-on .catxd-vc-bar:hover .catxd-vc-fill{ opacity:1; }
body.catx-on .catxd-vc-days{ display:flex; gap:5px; }
body.catx-on .catxd-vc-days span{ flex:1; text-align:center; font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace; font-size:var(--dash-font-9, 9px); color:var(--cx-sub2); }

body.catx-on #admin_wrap .board_type > .board_type_tit,
body.catx-on #admin_wrap .main_box .tit{ color: var(--cx-text); }

/* 스크롤바 */
body.catx-on ::-webkit-scrollbar{ width:8px; height:8px; }
body.catx-on ::-webkit-scrollbar-thumb{ background: var(--cx-line2); border-radius:8px; }

/* ==================== 썸네일 칸 크기 고정 ====================================
 * 목록이 뜰 때 썸네일이 5배 크게 나왔다가 줄어들었다.
 *   dev 실측: t=911ms 썸네일 357x359 (td 369px) → t=1,021ms 70x72 (td 82px)
 *   약 110ms 동안 커진 채로 화면에 보였다(그 시점 opacity 0.71 — 이미 노출 중).
 *
 * 원인은 순환 의존이다. td 는 flex 항목이고 flex 항목의 min-width 기본값은 auto 라
 * '내용보다 작아질 수 없다'. 그런데 내용인 span.img_ratio_4x3 은 width:100% +
 * padding-top:100% 라 제 크기가 부모 폭에 의존한다. 서로를 기다리다 레이아웃이
 * 확정될 때 비로소 값이 잡힌다.
 *
 * → td 는 min-width:0 으로 auto 를 끊고 폭을 못박고, span 은 퍼센트 대신 px 로
 *   고정해 부모와 무관하게 처음부터 크기가 정해지게 한다. 값은 위 실측 확정치.
 * ========================================================================== */
body.catx-on.catx-list-normal .list_table_pc_zone tr[data-id] .catx-c-thumb{
	flex:0 0 72px !important; min-width:0 !important; max-width:72px !important;
	overflow:hidden !important;
}
body.catx-on.catx-list-normal .list_table_pc_zone tr[data-id] .catx-c-thumb .img_ratio_4x3{
	width:70px !important; max-width:70px !important;
	padding-top:70px !important;   /* 100% 는 부모 폭 의존 → px 로 끊는다 */
}

/* ==================== 레이아웃 고정(사이드바 폭 / 본문 오프셋) ==================
 * 예전에는 catxSyncTopbar() 가 window 'load' 에서 사이드바 폭과 본문 margin-left·width 를
 * 인라인으로 박았다. load 는 이미지·외부스크립트까지 끝나야 오므로, 그 전까지 본문이
 * 화면 전체 폭을 차지했다가 뒤늦게 사이드바 폭만큼 밀리며 줄어들었다.
 *   실측(dev, 1920px): t=580ms body 2,176px → t=1,964ms 1,916px  (약 1.4초간 우측 삐져나감)
 *
 * 그런데 JS 가 쓰던 값은 측정값이 아니라 상수였다 —  var SBW = collapsed ? 64 : 250;
 * 그러면 CSS 가 처음부터 잡는 게 맞다. 폭은 이미 --cx-sidebar-w 로 정의돼 있다.
 * 접힘 상태(catx-nav-collapsed)는 헤더의 인라인 스크립트가 파싱 중에 body 에 붙이므로
 * 첫 렌더부터 올바른 폭이 적용된다.
 *
 * !important 를 쓰는 이유: base 관리자 JS 가 화면폭별로 width/left 를 '일반' 인라인으로
 * 주입한다. 인라인은 !important 가 붙은 CSS 를 이기지 못하므로 이걸로 무력화된다.
 * (catxSyncTopbar 는 그대로 둔다. 상단바 실제 높이 보정은 여전히 필요하고, 폭은 같은
 *  값을 다시 쓰는 것뿐이라 화면이 움직이지 않는다.)
 * ========================================================================== */
@media (min-width:993px){
	body.catx-on #admin_wrap header.style_admin_category{
		position:fixed !important; left:0 !important;
		top:var(--cx-topbar-h) !important;
		height:calc(100vh - var(--cx-topbar-h)) !important;
		width:var(--cx-sidebar-w) !important;
		min-width:var(--cx-sidebar-w) !important;
		max-width:var(--cx-sidebar-w) !important;
	}
	body.catx-on #admin_wrap{
		margin-left:var(--cx-sidebar-w) !important;
		width:calc(100vw - var(--cx-sidebar-w)) !important;
		max-width:calc(100vw - var(--cx-sidebar-w)) !important;
		box-sizing:border-box !important;
		overflow-x:hidden !important;
	}
	/* 접힘(64px) — 아래 접힘 블록의 width 규칙과 같은 값으로 본문 폭도 맞춘다 */
	body.catx-on.catx-nav-collapsed #admin_wrap{
		width:calc(100vw - 64px) !important;
		max-width:calc(100vw - 64px) !important;
	}
}

/* ==================== 네비 접힘(아이콘 레일) / 반응형 ====================== */
/* 데스크톱: 토글 시 64px 아이콘 레일 (텍스트/그룹/서브 숨기고 아이콘만) */
/* 접힘 레일은 실서버 기존 CSS(base/헤더 인라인)와 경쟁하므로 이 블록에 한해 !important 로 확실히 고정한다. */
@media (min-width:993px){
	body.catx-on.catx-nav-collapsed #admin_wrap header.style_admin_category{ width:64px !important; min-width:64px !important; max-width:64px !important; overflow:hidden !important; border-right:1px solid var(--cx-line) !important; box-sizing:border-box !important; }
	body.catx-on.catx-nav-collapsed #admin_wrap header.style_admin_category .logo_btm{ width:100% !important; box-sizing:border-box !important; padding:14px 0 !important; overflow:hidden !important; }
	body.catx-on.catx-nav-collapsed #admin_wrap header.style_admin_category .nav_view_box,
	body.catx-on.catx-nav-collapsed #admin_wrap header.style_admin_category .admin_nav,
	body.catx-on.catx-nav-collapsed .catx-nav{ width:64px !important; min-width:0 !important; padding:0 !important; }
	body.catx-on.catx-nav-collapsed #admin_wrap{ margin-left:64px !important; }
	body.catx-on.catx-nav-collapsed .catx-group-head,
	body.catx-on.catx-nav-collapsed .catx-home-txt,
	body.catx-on.catx-nav-collapsed .catx-mn,
	body.catx-on.catx-nav-collapsed .catx-mc,
	body.catx-on.catx-nav-collapsed .catx-ca,
	body.catx-on.catx-nav-collapsed .catx-sub,
	body.catx-on.catx-nav-collapsed #admin_wrap header.style_admin_category .admin_user_box{ display:none !important; }
	body.catx-on.catx-nav-collapsed .catx-home{ width:40px !important; height:40px !important; justify-content:center !important; padding:0 !important; margin:0 auto 10px !important; }
	body.catx-on.catx-nav-collapsed .catx-group{ width:auto !important; margin:0 0 2px !important; }
	body.catx-on.catx-nav-collapsed .catx-menu{ width:auto !important; margin:0 0 2px !important; }
	body.catx-on.catx-nav-collapsed .catx-menu-row{ width:44px !important; justify-content:center !important; padding:9px 0 !important; gap:0 !important; margin:0 auto !important; }
	body.catx-on.catx-nav-collapsed .catx-mi{ margin:0 !important; }
	/* 접힘(아이콘 레일) 상태: 숫자 배지 대신 아이콘 우상단 작은 빨간 점 */
	body.catx-on.catx-nav-collapsed .catx-menu-row{ position:relative !important; }
	body.catx-on.catx-nav-collapsed .catx-menu-row .catx-badge{
		position:absolute !important; top:5px !important; right:8px !important;
		min-width:0 !important; width:8px !important; height:8px !important;
		padding:0 !important; border-radius:50% !important;
		font-size:0 !important; line-height:0 !important; text-indent:-9999px !important; overflow:hidden !important;
		border:1.5px solid var(--cx-header) !important; box-sizing:content-box !important;
	}
}
/* 모바일: 사이드바 드로어(기본 숨김), 토글 시 노출 */
@media (max-width:992px){
	body.catx-on{ --cx-drawer-w: min(82vw, 330px); }
	body.catx-on #admin_wrap{ margin-left:0; }
	/* 모바일 드로어: 화면에 고정(fixed) 오버레이. 불투명 배경이라 자기 폭만큼 딤을 가려 메뉴 위는 안 어둡다.
	 * z-index 는 상단바(30050)보다 낮고 백드롭(30030)보다 높게 → 메뉴는 딤 위, 콘텐츠는 딤 아래. */
	body.catx-on #admin_wrap header.style_admin_category{ position:fixed !important; top:var(--cx-topbar-h) !important; left:auto !important; right:0 !important; height:calc(100vh - var(--cx-topbar-h)) !important; height:calc(100dvh - var(--cx-topbar-h)) !important; width:var(--cx-drawer-w) !important; min-width:0 !important; max-width:var(--cx-drawer-w) !important; transform:translateX(100%); z-index:30040 !important; overflow-y:auto; -webkit-overflow-scrolling:touch; }
	/* 딤(스크림)은 드로어의 box-shadow(100vmax spread)로 깐다. box-shadow 는 요소 '바깥'에만 칠해지므로
	 * 드로어(메뉴) 자기 영역은 절대 어두워지지 않고 주변(오른쪽 콘텐츠)만 딤. 상단바는 z-index 30050 으로 위라 영향 없음.
	 * box-shadow 는 포인터 이벤트를 잡지 않아 클릭도 그대로 통과(바깥 클릭 닫기는 JS 담당). */
	body.catx-on.catx-nav-collapsed #admin_wrap header.style_admin_category{ transform:translateX(0); box-shadow:0 18px 60px rgba(0,0,0,.5), 0 0 0 100vmax rgba(4,8,15,.42) !important; }
	body.catx-on .catx-sysinfo{ display:none; }
	body.catx-on .catx-live{ display:none; }
	body.catx-on .catx-acct-name{ display:none; }
}
@media (max-width:600px){
	body.catx-on .catx-brand{ display:none; }
}

/* ================= 실서버 대응 긴급 수정 ================================== */
/* (1) 상단바 fixed 강제 — 경쟁 규칙으로 position 이 풀리면 in-flow 가 되어 본문이
 *     이중 오프셋(topbar 높이 + padding-top)만큼 밀리는 여백이 생긴다. */
body.catx-on .catx-topbar{ position:fixed !important; top:0 !important; left:0 !important; right:0 !important; z-index:30050 !important; }
/* The image editor opens with jQuery .show(), so the modal visibility observer does not lower the catx header. */
body.catx-on.cx-has-formitem #modal-toast-editor{ z-index:30060 !important; }
/* 모달이 실제로 보일 때 상단바/사이드바를 모달 아래로 내림(z 30050→1000) → 모달 위로 뜨던 문제 해결 + 오버레이에 딤 처리.
 *   숨기지 않고 '아래로'만 내림: 작은 모달(매칭된 고객 등)에서 헤더가 통째로 사라져 상단이 비던 문제 방지(딤된 채 남아있음).
 * ⚠️ CSS :has(.modal.in) 는 못 씀: #modal_customer_matching 등이 항상 .modal.in + display:none(상시 숨김) 이라 상시 매칭돼 오작동.
 *    → 헤더 JS(cx_modal_chrome)가 '보이는' 모달만 판정해 body.catx-modal-vis 토글, 여기선 그 클래스로만 z내림. */
/* 999: #modal_building 등 z-index 1000 모달과 동점이면 문서 순서에 따라 헤더가 위로 올 수 있어 한 단계 아래로. 2026-09-30 */
body.catx-on.catx-modal-vis .catx-topbar,
body.catx-on.catx-modal-vis #admin_wrap header.style_admin_category{ z-index:999 !important; }
/* AI description is a custom overlay, so it needs the same header stacking as Bootstrap modals. */
body.catx-on.catx-ai-modal-open .catx-topbar,
body.catx-on.catx-ai-modal-open #admin_wrap header.style_admin_category{ z-index:1000 !important; }
/* [주소 검색 / 빠른 주소 검색 모달] 이 둘은 Bootstrap `.modal` 이 아니라 자체 마크업(.modal_daum_address / .modal_quick, z-index 1040)이라
 * cx_modal_chrome 의 감지 대상이 아니다 → body.catx-modal-vis 가 안 붙어 상단바(z 30050)가 모달 위로 올라온다.
 * 헤더를 내리는 대신 모달 자체를 상단바·사이드바 드로어(30040/30050) 위로 올린다. */
body.catx-on .modal_daum_address,
body.catx-on .modal_quick,
/* 주소·건물 정보 조회 중 로딩 창도 .modal 이 아니라(is-open 토글, z 12000) 감지가 안 돼 상단바가 그 위로 올라왔다. 같은 방식으로 올린다. 2026-09-30 */
body.catx-on #item_address_loading_modal{ z-index:30060 !important; }
/* The detail modal's Bootstrap backdrop already dims the entire page. */
body.catx-on #modal-item.modal_itemScroll{ background: transparent !important; }
/* ═══ [거래 상태 변경 모달] 첨부 mockup 디자인으로 개선(catx 한정, 헤더 JS 가 부제목/힌트/요약 주입) ═══
 * 공유 셸(admin_item_v2.php)의 모달 CSS(#modal-isfinish_change)를 catx 스코프로 오버라이드 → 비catx 무영향.
 * 단일열 · 무카드(플랫) · 세그먼트 컨트롤 · 토글박스+힌트 · 푸터 요약 */
body.catx-on #modal-isfinish_change .modal-dialog{ width:min(520px,calc(100% - 32px)) !important; }
body.catx-on #modal-isfinish_change .modal_wrap_ver1 .modal_title{ height:auto !important; padding:18px 24px !important; align-items:center !important; }
body.catx-on #modal-isfinish_change .catx-ds-head h4{ margin:0 !important; font-size:18px !important; font-weight:700 !important; color:#18181b !important; }
body.catx-on #modal-isfinish_change .catx-ds-sub{ margin-top:4px !important; font-size:13px !important; color:#71717a !important; }
body.catx-on #modal-isfinish_change .catx-ds-sub b{ color:#3f3f46 !important; font-weight:600 !important; }
body.catx-on #isfinish_change_body{ grid-template-columns:1fr !important; gap:20px !important; background:#fff !important; padding:22px 24px !important; }
body.catx-on #isfinish_change_body .deal-status-section{ border:0 !important; border-radius:0 !important; padding:0 !important; }
body.catx-on #isfinish_change_body .deal-status-section-title{ display:none !important; }
body.catx-on #isfinish_change_body .deal-status-section>.isfinish_box{ margin:0 0 14px !important; }
body.catx-on #isfinish_change_body .deal-status-section>.isfinish_box:last-child{ margin-bottom:0 !important; }
body.catx-on #isfinish_change_body .deal_status_modal_box>span:first-child{ font-size:13px !important; font-weight:600 !important; color:#3f3f46 !important; margin-bottom:8px !important; }
/* 거래완료 여부: 세그먼트 컨트롤(회색 컨테이너, 선택=흰색). 앱 인라인 --status-color 는 !important 로 덮음 */
body.catx-on #isfinish_change_body .deal_status_btns{ background:#f4f4f5 !important; padding:4px !important; border-radius:11px !important; gap:4px !important; width:100% !important; box-sizing:border-box !important; }
/* 각 상태는 설정된 색상(인라인 --status-color)으로 표시(사용자 요청). 미선택=옅게, 선택=흰 pill+해당색 글자+해당색 링 */
body.catx-on #isfinish_change_body .deal_status_btn{ flex:1 1 0 !important; min-width:0 !important; height:38px !important; line-height:36px !important; border:0 !important; border-radius:8px !important; background:transparent !important; color:var(--status-color,#71717a) !important; opacity:.6 !important; font-weight:600 !important; box-shadow:none !important; }
body.catx-on #isfinish_change_body .deal_status_btn.on{ background:#fff !important; color:var(--status-color,#18181b) !important; opacity:1 !important; font-weight:700 !important; box-shadow:0 1px 2px rgba(24,24,27,.12),0 0 0 1px color-mix(in oklab, var(--status-color,#888) 45%, transparent) !important; }
body.catx-on #isfinish_change_body .deal_status_btn:hover:not(.on){ opacity:.85 !important; background:rgba(24,24,27,.03) !important; }
body.catx-on #isfinish_change_body .deal_status_btn>i{ display:none !important; }
/* 날짜 입력 */
body.catx-on #isfinish_change_body .deal_status_modal_box>div{ width:100% !important; max-width:none !important; height:46px !important; padding:0 40px 0 14px !important; border:1px solid #d4d4d8 !important; border-radius:10px !important; }
body.catx-on #isfinish_change_body .deal_status_modal_box>div input{ font-size:14px !important; color:#18181b !important; }
/* 계약도래 여부: 별도 라벨(위) + 토글 박스(스위치+힌트) */
body.catx-on #isfinish_change_body .catx-ds-flaglabel{ font-size:13px !important; font-weight:600 !important; color:#3f3f46 !important; margin:6px 0 8px !important; }
/* 거래완료일(section1 마지막) ↔ 계약도래(section2) 사이 여백 확보(사용자 요청) */
body.catx-on #isfinish_change_body .ordercome-status-section{ margin-top:4px !important; }
body.catx-on #isfinish_change_body .ordercome-flag-box{ display:flex !important; align-items:center !important; gap:12px !important; padding:13px 16px !important; border:1px solid #e4e4e7 !important; border-radius:12px !important; box-sizing:border-box !important; }
body.catx-on #isfinish_change_body .ordercome-flag-box>span:first-child{ display:none !important; }
body.catx-on #isfinish_change_body .ordercome-flag-box .catx-ds-hint{ margin-left:auto !important; font-size:var(--dash-font-12, 12px) !important; color:#9ca3af !important; }
/* 푸터: 버튼 가운데 정렬 + 하단 모서리 둥글게(모달 radius 와 일치, 사각 삐짐 방지). 좌측 요약문구는 제거(사용자 요청) */
body.catx-on #modal-isfinish_change .modal_btn_box{ padding:14px 24px !important; background:#fafafa !important; border-top:1px solid #ececef !important; border-radius:0 0 16px 16px !important; overflow:hidden !important; }
body.catx-on #modal-isfinish_change .modal_btn_box .btn_wrap{ display:flex !important; align-items:center !important; justify-content:center !important; gap:8px !important; }
body.catx-on #modal-isfinish_change .modal_btn_box .catx-ds-summary{ display:none !important; }
body.catx-on #modal-isfinish_change .modal_btn_box button.btn{ order:2 !important; min-width:auto !important; padding:0 18px !important; background: var(--cx-accent) !important; border:0 !important; border-radius:10px !important; color:#fff !important; font-weight:700 !important; box-shadow:0 1px 2px rgba(77,141,255,.35) !important; }
body.catx-on #modal-isfinish_change .modal_btn_box .btn_999{ order:1 !important; }
/* 본문 첫 섹션의 상단 마진 제거(혹시 모를 기본 여백) */
body.catx-on #admin_wrap > section.catxd-wrap{ margin-top:0 !important; }
/* #1 다크 대시보드 본문 배경 다크화: 대시보드(.catxd-wrap 있는 페이지)에만 적용.
 * .admin_main_wrap 은 전 페이지 공통 래퍼라 무조건 투명화하면 다른 페이지(매물목록 등) 배경까지 바뀐다 → :has 로 대시보드 한정. */
body.catx-on #admin_wrap .admin_main_wrap:has(> .catxd-wrap){ background:transparent !important; }
/* #3 #admin_wrap padding-top(상단바 높이)이 min-height:100vh 에 더해져 생기는 미세 세로 스크롤 방지 */
body.catx-on #admin_wrap{ box-sizing:border-box; }
/* 본문 래퍼(.admin_main_wrap): base JS 가 화면폭별로 width:winW-280 / position:absolute;left:40px 등
 * 인라인을 직접 주입해 사이드바(260)와 어긋나거나 우측 여백이 생긴다. 데스크톱에선 이를 무시하고
 * #admin_wrap 안을 그대로 꽉 채우도록 강제(오프셋은 #admin_wrap margin-left 가 담당). */
@media (min-width:993px){
	body.catx-on #admin_wrap .admin_main_wrap{
		position:static !important; top:auto !important; left:auto !important;
		width:auto !important; max-width:100% !important; min-width:0 !important;
		margin:0 !important; box-sizing:border-box !important; float:none !important;
	}
	/* .catxd-wrap 및 내부 그리드가 컨테이너를 절대 넘지 않게 (오버플로우→잘림 방지) */
	body.catx-on #admin_wrap .admin_main_wrap .catxd-wrap{ max-width:100% !important; box-sizing:border-box !important; }
	body.catx-on .catxd-kpis,
	body.catx-on .catxd-row-staff,
	body.catx-on .catxd-row3{ max-width:100%; min-width:0; }
	/* ★ 핵심 원인: base(admin_style.php:1378) 가 header.style_admin_09 .logo_btm 을
	 * width:236px !important; position:fixed; top:64px; background:#06152e 로 고정 →
	 * 내부 패널이 236px 라 사이드바(260)와 24px 어긋나 여백처럼 보였다.
	 * style_admin_category 로 더 높은 특이성으로 덮어써 260 을 꽉 채우게 복구. */
	body.catx-on #admin_wrap header.style_admin_category .logo_btm{
		position:static !important; top:auto !important; left:auto !important;
		width:100% !important; height:100% !important;
		background:transparent !important; box-shadow:none !important; z-index:auto !important;
		padding:12px 10px !important; overflow-y:auto !important; overflow-x:hidden !important;
	}
}
/* 사이드바: 경쟁 스크립트의 인라인(width:280px; z-index:0/position)을 덮어써 250px/전면 고정.
 * position:fixed 가 풀리면 in-flow 로 250px 자리를 차지 + #admin_wrap margin-left:250 이 겹쳐
 * 본문이 ~520px 로 이중으로 밀린다 → fixed/top/left 를 !important 로 강제. */
@media (min-width:993px){
	body.catx-on #admin_wrap header.style_admin_category{
		position:fixed !important; top:var(--cx-topbar-h) !important; left:0 !important;
		width:var(--cx-sidebar-w) !important; min-width:var(--cx-sidebar-w) !important; max-width:var(--cx-sidebar-w) !important;
		height:calc(100vh - var(--cx-topbar-h)) !important;
		z-index:30000 !important;
	}
}

/* (2) 라이트모드 좌측 사이드바도 밝게 — 내부 dark bg 강제 해제 */
body.catx-on.catx-light #admin_wrap header.style_admin_category{ background:var(--cx-sidebar) !important; border-right-color:var(--cx-line) !important; }
body.catx-on.catx-light #admin_wrap header.style_admin_category .logo_btm,
body.catx-on.catx-light #admin_wrap header.style_admin_category .nav_view_box,
body.catx-on.catx-light #admin_wrap header.style_admin_category .admin_nav,
body.catx-on.catx-light #admin_wrap header.style_admin_category .logo,
body.catx-on.catx-light #admin_wrap header.style_admin_category .logo_top{ background:transparent !important; }

/* ============================================================================
 * 요청 모달 (.cxm) — 용량 추가 / 문자 충전. 시안(다크/라이트) 반영.
 * 다크가 기본(body.catx-on), 라이트 토글(body.catx-light) 시 팔레트 전환. 안내 전용(결제 없음).
 * ========================================================================== */
.cxm{
	/* 다크: 모달 카드를 대시보드 배경보다 밝게 띄우고(엘리베이션) 테두리·내부면 대비를 강화 */
	--m-card:#1e2840; --m-border:#3e4c6b; --m-code:#8493ad; --m-title:#f2f6fc; --m-sub:#9aa6bd;
	--m-close-bd:#3d4a68; --m-close-bg:#29344e; --m-close-fg:#aab5cb; --m-close-hbg:#33415f; --m-close-hfg:#f2f6fc; --m-close-hbd:#55658c;
	--m-scard-bg:#26314b; --m-scard-bd:#394663; --m-scard-label:#98a3ba; --m-scard-val:#f2f6fc; --m-scard-unit:#b3bdd0;
	--m-chip-bg:#29344e; --m-chip-bd:#3d4a68; --m-chip-fg:#bcc6da; --m-chip-on-bg:#3f66b6; --m-chip-on-bd:#5479cc; --m-chip-on-fg:#fff; --m-chip-hbd:#55658c; --m-chip-dash:#46557a;
	--m-input-bg:#26314b; --m-input-bd:#3d4a68; --m-input-fg:#f2f6fc; --m-input-unit:#9aa6bd; --m-hint:#98a3ba; --m-err:#ef8fab; --m-err-bd:#8a3a5a;
	--m-price-grad:linear-gradient(160deg,#31518c 0%,#1d2c49 100%); --m-price-bd:#3e4f80; --m-price-sum:#a9bbdc; --m-price-val:#f6f9ff; --m-price-won:#c9d5ec; --m-price-div:rgba(255,255,255,.16); --m-price-foot:#98abcf;
	--m-note:#b291a6; --m-sec:#e9eef7;
	--m-acc-bg:#26314b; --m-acc-bd:#394663; --m-ibk-bg:#2f3f63; --m-ibk-fg:#a8bef0; --m-bank:#d7dfee; --m-holder:#98a3ba; --m-accnum:#f6f9ff;
	--m-copy-fg:#9aa6bd; --m-copy-on:#a8bef0; --m-copy-bg:#29344e; --m-copy-bd:#3d4a68; --m-copy-hbg:#33415f;
	--m-info-bg:#2c1c28; --m-info-bd:#573349; --m-info-icon:#c07a92; --m-info-title:#f0aec2; --m-info-body:#d3a1b1; --m-info-link:#f0aec2;
	--m-foot-bd:#394663; --m-foot-bg:#1a2337; --m-pri-bg:#3f66b6; --m-pri-hbg:#5479cc; --m-pri-fg:#fff; --m-sec-bg:#29344e; --m-sec-bd:#3d4a68; --m-sec-fg:#cbd4e6; --m-sec-hbg:#33415f;
}
body.catx-light .cxm{
	--m-card:#ffffff; --m-border:#e6eaf2; --m-code:#9aa3b8; --m-title:#16223d; --m-sub:#8b93a7;
	--m-close-bd:#e6eaf2; --m-close-bg:#ffffff; --m-close-fg:#7c869e; --m-close-hbg:#f4f6fb; --m-close-hfg:#16223d; --m-close-hbd:#d6dcea;
	--m-scard-bg:#fbfcfe; --m-scard-bd:#e9edf5; --m-scard-label:#97a0b6; --m-scard-val:#16223d; --m-scard-unit:#6d7690;
	--m-chip-bg:#ffffff; --m-chip-bd:#dfe5f0; --m-chip-fg:#5c6580; --m-chip-on-bg:#2b477f; --m-chip-on-bd:#2b477f; --m-chip-on-fg:#fff; --m-chip-hbd:#b9c5de; --m-chip-dash:#cdd6e6;
	--m-input-bg:#ffffff; --m-input-bd:#c3cee4; --m-input-fg:#16223d; --m-input-unit:#7c869e; --m-hint:#97a0b6; --m-err:#c2456a; --m-err-bd:#e2a3b6;
	--m-price-grad:linear-gradient(160deg,#33528f 0%,#1c3062 100%); --m-price-bd:transparent; --m-price-sum:#b9c8e6; --m-price-val:#fff; --m-price-won:#dbe4f5; --m-price-div:rgba(255,255,255,.16); --m-price-foot:#adbedd;
	--m-note:#a8768a; --m-sec:#16223d;
	--m-acc-bg:#fbfcfe; --m-acc-bd:#e9edf5; --m-ibk-bg:#e4eaf7; --m-ibk-fg:#33528f; --m-bank:#3d4762; --m-holder:#97a0b6; --m-accnum:#16223d;
	--m-copy-fg:#7c869e; --m-copy-on:#2b477f; --m-copy-bg:#ffffff; --m-copy-bd:#dfe5f0; --m-copy-hbg:#eef2fa;
	--m-info-bg:#fdf5f7; --m-info-bd:#f2dae1; --m-info-icon:#dd9db1; --m-info-title:#a8556e; --m-info-body:#b06d83; --m-info-link:#a8556e;
	--m-foot-bd:#eef1f7; --m-foot-bg:#fbfcfe; --m-pri-bg:#2b477f; --m-pri-hbg:#1c3062; --m-pri-fg:#fff; --m-sec-bg:#ffffff; --m-sec-bd:#d8dfec; --m-sec-fg:#4c5673; --m-sec-hbg:#f2f5fb;
}
dialog.cxm{ width:520px; max-width:calc(100vw - 24px); max-height:calc(100vh - 40px); margin:auto; padding:0; border:1px solid var(--m-border); border-radius:18px; background:var(--m-card); color:var(--m-title); font-family:'Apple SD Gothic Neo','NotoSansKR','NanumBarunGothic','nanum gothic','나눔고딕','apple gothic','맑은 고딕','굴림',sans-serif; box-shadow:0 30px 80px rgba(0,0,0,.58); overflow:auto; }
dialog.cxm:not([open]){ display:none; }
dialog.cxm::backdrop{ background:rgba(5,9,16,.74); }
.cxm *{ box-sizing:border-box; }
.cxm-head{ display:flex; align-items:flex-start; justify-content:space-between; gap:12px; padding:22px 24px 20px 28px; border-bottom:1px solid var(--m-border); }
.cxm-code{ font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace; font-size:var(--dash-font-10_5, 10.5px); font-weight:700; letter-spacing:.14em; color:var(--m-code); }
.cxm-title{ margin-top:8px; font-size:20px; font-weight:700; letter-spacing:-.02em; color:var(--m-title); }
.cxm-sub{ margin-top:6px; font-size:13px; color:var(--m-sub); line-height:1.5; }
.cxm-close{ flex:none; width:32px; height:32px; margin-top:2px; padding:0; border:1px solid var(--m-close-bd); background:var(--m-close-bg); border-radius:9px; color:var(--m-close-fg); font-size:15px; line-height:1; font-family:inherit; cursor:pointer; display:flex; align-items:center; justify-content:center; transition:all .15s ease; }
.cxm-close:hover{ background:var(--m-close-hbg); color:var(--m-close-hfg); border-color:var(--m-close-hbd); }
.cxm-summary{ padding:20px 28px 0; display:grid; grid-template-columns:1fr 1fr; gap:10px; }
.cxm-scard{ display:flex; align-items:baseline; justify-content:space-between; gap:8px; border:1px solid var(--m-scard-bd); border-radius:12px; padding:11px 14px; background:var(--m-scard-bg); }
.cxm-scard-l{ font-size:var(--dash-font-11, 11px); color:var(--m-scard-label); white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }
.cxm-scard-v{ margin-top:0; flex:none; font-size:14px; font-weight:700; color:var(--m-scard-val); font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace; }
.cxm-scard-v .u{ font-size:13px; font-weight:500; color:var(--m-scard-unit); margin-left:3px; font-family:'Apple SD Gothic Neo','NotoSansKR','NanumBarunGothic','nanum gothic','나눔고딕','apple gothic','맑은 고딕','굴림',sans-serif; }
.cxm-sec-label{ font-size:13.5px; font-weight:700; color:var(--m-sec); }
.cxm-field{ padding:22px 28px 0; }
.cxm-chips{ margin-top:10px; display:flex; flex-wrap:wrap; gap:8px; }
.cxm-chip{ padding:9px 14px; min-width:62px; font-family:inherit; font-size:13px; font-weight:500; border-radius:9px; cursor:pointer; transition:all .15s ease; background:var(--m-chip-bg); border:1px solid var(--m-chip-bd); color:var(--m-chip-fg); }
.cxm-chip:hover{ border-color:var(--m-chip-hbd); }
.cxm-chip.is-on{ background:var(--m-chip-on-bg); border:1px solid var(--m-chip-on-bd); color:var(--m-chip-on-fg); font-weight:700; }
.cxm-chip.cxm-chip-custom{ border-style:dashed; border-color:var(--m-chip-dash); }
.cxm-chip.cxm-chip-custom.is-on{ border-style:solid; }
.cxm-custom{ margin-top:10px; display:flex; align-items:center; gap:10px; }
.cxm-custom[hidden]{ display:none; }
.cxm-custom-box{ flex:1; display:flex; align-items:center; border-radius:9px; background:var(--m-input-bg); padding:0 14px; border:1px solid var(--m-input-bd); }
.cxm-custom-box.is-err{ border-color:var(--m-err-bd); }
.cxm-custom-box input{ flex:1; width:100%; padding:11px 0; border:none; outline:none; background:transparent; font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace; font-size:15px; font-weight:600; color:var(--m-input-fg); }
.cxm-custom-box .u{ font-size:13px; font-weight:500; color:var(--m-input-unit); margin-left:6px; }
.cxm-custom-hint{ font-size:var(--dash-font-11_5, 11.5px); color:var(--m-hint); white-space:nowrap; }
.cxm-err{ margin-top:7px; display:none; align-items:center; gap:6px; font-size:var(--dash-font-12, 12px); font-weight:500; color:var(--m-err); }
.cxm-err.is-on{ display:flex; }
.cxm-err .mk{ width:15px; height:15px; flex:none; border-radius:50%; background:#c2456a; color:#fff; font-size:var(--dash-font-10, 10px); font-weight:700; display:flex; align-items:center; justify-content:center; }
.cxm-price{ margin:18px 28px 0; border-radius:14px; padding:22px 22px 20px; background:var(--m-price-grad); border:1px solid var(--m-price-bd); color:#fff; }
.cxm-price-sum{ font-size:var(--dash-font-12, 12px); color:var(--m-price-sum); }
.cxm-price-row{ margin-top:8px; display:flex; align-items:baseline; gap:4px; }
.cxm-price-val{ font-size:34px; font-weight:700; letter-spacing:-.025em; font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace; color:var(--m-price-val); }
.cxm-price-won{ font-size:16px; font-weight:500; color:var(--m-price-won); }
.cxm-price-foot{ margin-top:14px; padding-top:13px; border-top:1px solid var(--m-price-div); display:flex; gap:18px; font-size:var(--dash-font-11_5, 11.5px); color:var(--m-price-foot); flex-wrap:wrap; }
.cxm-note{ margin:12px 28px 0; font-size:var(--dash-font-12, 12px); line-height:1.7; color:var(--m-note); }
.cxm-pay{ padding:24px 28px 0; }
.cxm-account{ margin-top:10px; border:1px solid var(--m-acc-bd); border-radius:12px; background:var(--m-acc-bg); padding:16px 18px; display:flex; align-items:center; justify-content:space-between; gap:14px; }
.cxm-account-l{ display:flex; align-items:center; gap:10px; min-width:0; }
.cxm-account-l > div:not(.cxm-ibk){ min-width:0; }
.cxm-ibk{ width:36px; height:36px; border-radius:10px; background:var(--m-ibk-bg); color:var(--m-ibk-fg); font-size:var(--dash-font-10_5, 10.5px); font-weight:700; display:flex; align-items:center; justify-content:center; font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace; flex:none; }
.cxm-bank{ font-size:13px; font-weight:500; color:var(--m-bank); white-space:nowrap; }
.cxm-holder{ margin-top:2px; font-size:var(--dash-font-10_5, 10.5px); color:var(--m-holder); line-height:1.4; }
.cxm-account-r{ display:flex; align-items:center; gap:8px; flex-wrap:wrap; justify-content:flex-end; flex:none; }
.cxm-accnum{ font-size:16px; font-weight:600; color:var(--m-accnum); font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace; letter-spacing:-.01em; }
.cxm-copy{ margin-top:0; flex:none; padding:5px 10px; font-family:inherit; font-size:var(--dash-font-11, 11px); font-weight:500; color:var(--m-copy-fg); background:var(--m-copy-bg); border:1px solid var(--m-copy-bd); border-radius:7px; cursor:pointer; transition:all .15s ease; }
.cxm-copy:hover{ background:var(--m-copy-hbg); }
.cxm-copy.is-done{ color:var(--m-copy-on); }
.cxm-info{ margin:12px 28px 0; border:1px solid var(--m-info-bd); background:var(--m-info-bg); border-radius:12px; padding:14px 16px; display:flex; gap:10px; }
.cxm-info-icon{ flex:none; width:18px; height:18px; margin-top:1px; border-radius:50%; background:var(--m-info-icon); color:#fff; font-size:var(--dash-font-11, 11px); font-weight:700; display:flex; align-items:center; justify-content:center; }
.cxm-info-title{ font-size:var(--dash-font-12_5, 12.5px); font-weight:700; color:var(--m-info-title); }
.cxm-info-body{ margin-top:4px; font-size:var(--dash-font-12, 12px); line-height:1.7; color:var(--m-info-body); }
.cxm-info-body a{ color:var(--m-info-link); display:inline-flex; align-items:center; gap:3px; text-decoration:none; }
.cxm-info-body a:hover{ text-decoration:underline; }
/* 결제 취소·환불 안내문구 — 모달 하단, 상단 구분선 + 중앙 정렬 + 링크 강조(전역 a 색상에 눌리지 않게 !important) */
.cxm-refund-note{ margin:12px 28px 16px; padding-top:12px; border-top:1px solid var(--m-border); font-size:var(--dash-font-11_5, 11.5px); line-height:1.65; color:var(--m-muted,#7b8498); text-align:center; }
.cxm-refund-note a{ color:var(--m-info-link) !important; font-weight:600; text-decoration:underline; text-underline-offset:2px; }
.cxm-refund-note a:hover{ opacity:.85; }
.cxm-foot{ margin-top:22px; padding:18px 28px 22px; border-top:1px solid var(--m-foot-bd); background:var(--m-foot-bg); display:grid; grid-template-columns:1.15fr 1fr; gap:10px; }
.cxm-btn{ padding:14px 12px; font-family:inherit; font-size:14px; border-radius:10px; cursor:pointer; transition:all .15s ease; text-align:center; text-decoration:none; display:flex; align-items:center; justify-content:center; }
.cxm-btn-primary{ font-weight:700; color:var(--m-pri-fg); background:var(--m-pri-bg); border:1px solid var(--m-pri-bg); }
.cxm-btn-primary:hover{ background:var(--m-pri-hbg); border-color:var(--m-pri-hbg); color:var(--m-pri-fg); }
.cxm-btn-secondary{ font-weight:500; color:var(--m-sec-fg); background:var(--m-sec-bg); border:1px solid var(--m-sec-bd); }
.cxm-btn-secondary:hover{ background:var(--m-sec-hbg); color:var(--m-sec-fg); }
.cxm :focus-visible{ outline:2px solid var(--m-chip-on-bg); outline-offset:2px; }
.cxm-unavail{ margin:18px 28px 0; padding:18px; border-radius:12px; background:var(--m-info-bg); border:1px solid var(--m-info-bd); color:var(--m-info-body); font-size:13px; line-height:1.7; }
/* KPI 매물 목록 팝업(#dashfilter-modal) — 행은 .catxi-list/.catxi-lrow 재사용, 여기선 스크롤 높이만 지정 */
.dfm-list{ max-height:min(52vh,440px); overflow-y:auto; }
.dfm-empty{ padding:26px 0; text-align:center; font-size:13px; color:var(--m-sub); }
.dfm-pager{ display:flex; align-items:center; justify-content:center; gap:14px; margin-top:14px; padding-top:14px; border-top:1px solid var(--m-border); }
.dfm-pg-btn{ padding:6px 14px; font-family:inherit; font-size:var(--dash-font-12_5, 12.5px); font-weight:500; color:var(--m-sec-fg); background:var(--m-sec-bg); border:1px solid var(--m-sec-bd); border-radius:8px; cursor:pointer; transition:all .15s ease; }
.dfm-pg-btn:hover:not(:disabled){ background:var(--m-sec-hbg); }
.dfm-pg-btn:disabled{ opacity:.45; cursor:default; }
.dfm-pg-info{ font-size:var(--dash-font-12, 12px); color:var(--m-sub); font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace; }
@media (max-width:560px){ dialog.cxm{ width:calc(100vw - 24px); } .cxm-foot{ grid-template-columns:1fr; } .cxm-account{ flex-direction:column; align-items:flex-start; gap:12px; } .cxm-account-r{ text-align:left; } .dfm-list{ max-height:min(60vh,420px); } }

/* 홈페이지 연장 요청 모달 전용 — '현재 홈페이지 정보' + '연장 비용 안내'. .cxm 팔레트(--m-*) 재사용. */
.erm-info{ margin-top:10px; border:1px solid var(--m-acc-bd); border-radius:12px; background:var(--m-acc-bg); padding:4px 18px; }
.erm-row{ padding:13px 0; display:flex; align-items:center; justify-content:space-between; gap:12px; }
.erm-row + .erm-row{ border-top:1px solid var(--m-border); }
.erm-row-top{ align-items:flex-start; }
.erm-row-l{ font-size:var(--dash-font-12_5, 12.5px); color:var(--m-scard-label); flex:none; }
.erm-doms{ display:flex; flex-wrap:wrap; justify-content:flex-end; gap:5px; max-width:300px; }
.erm-dom{ padding:3px 9px; border:1px solid var(--m-chip-bd); border-radius:999px; background:var(--m-chip-bg); font-size:var(--dash-font-11_5, 11.5px); font-weight:500; color:var(--m-sec-fg); font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace; }
.erm-dom-count{ padding:3px 9px; border-radius:999px; background:var(--m-ibk-bg); color:var(--m-ibk-fg); font-size:var(--dash-font-11_5, 11.5px); font-weight:700; }
.erm-usage{ display:flex; align-items:center; gap:8px; }
.erm-bar{ width:76px; height:5px; border-radius:3px; background:var(--m-chip-bd); overflow:hidden; flex:none; }
.erm-bar-fill{ height:100%; border-radius:3px; background:#6f92dd; }
body.catx-light .erm-bar-fill{ background:#2b477f; }
.erm-usage-val{ font-size:13px; font-weight:600; color:var(--m-scard-val); font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace; }
.erm-ssl{ display:inline-flex; align-items:center; gap:5px; padding:4px 10px; border-radius:999px; font-size:var(--dash-font-12, 12px); font-weight:700; }
.erm-ssl .dot{ width:6px; height:6px; border-radius:50%; background:currentColor; }
.erm-ssl.is-ok{ background:#1b3229; color:#77c69b; }
.erm-ssl.is-no{ background:#331d26; color:#e58ea8; }
body.catx-light .erm-ssl.is-ok{ background:#e6f0ea; color:#2f7550; }
body.catx-light .erm-ssl.is-no{ background:#fdf0f3; color:#b4566d; }
.erm-cost{ margin:16px 28px 0; border-radius:14px; border:1px solid var(--m-price-bd); padding:16px 18px 15px; background:var(--m-price-grad); color:#fff; }
.erm-cost-l{ font-size:var(--dash-font-12, 12px); color:var(--m-price-sum); }
.erm-cost-h{ margin-top:5px; font-size:17px; font-weight:700; letter-spacing:-.02em; line-height:1.38; color:var(--m-price-val); }
.erm-cost-d{ margin-top:6px; font-size:var(--dash-font-12_5, 12.5px); line-height:1.6; color:var(--m-price-foot); }
/* 문의 복사 완료 토스트 — 모달 중앙에 다크 토스트로 노출 + 위아래로 살짝 떠오르는 효과.
 * position:fixed 로 화면(=모달) 중앙 고정, is-on 시 페이드+바운스. 다크/라이트 공통 다크 토스트. */
/* 반전 토스트 — 다크모드: 밝은 토스트, 라이트모드: 어두운 토스트 (배경과 대비 확보) */
.cxm-copied{ position:fixed; left:50%; top:50%; z-index:5; display:flex; align-items:center; gap:8px; max-width:min(360px, calc(100vw - 56px)); padding:14px 20px; border-radius:12px; background:#f5f8ff; color:#16223d; border:1px solid rgba(20,45,75,.12); font-size:13.5px; font-weight:600; line-height:1.5; text-align:center; box-shadow:0 18px 48px rgba(0,0,0,.55), 0 0 0 4px rgba(95,217,154,.14); opacity:0; visibility:hidden; pointer-events:none; transform:translate(-50%,-50%); transition:opacity .2s ease, visibility .2s ease; }
.cxm-copied svg{ flex:none; color:#129a56; }
body.catx-light .cxm-copied{ background:#1b2333; color:#f2f6ff; border-color:rgba(255,255,255,.12); box-shadow:0 18px 48px rgba(18,35,61,.30), 0 0 0 4px rgba(47,158,80,.16); }
body.catx-light .cxm-copied svg{ color:#5fd99a; }
.cxm-copied.is-on{ opacity:1; visibility:visible; animation:ermCopiedBob 2.2s ease-in-out infinite; }
@keyframes ermCopiedBob{ 0%,100%{ transform:translate(-50%,-50%); } 50%{ transform:translate(-50%, calc(-50% - 7px)); } }
/* 직접입력 필드 포커스 개선: 하드 아웃라인 대신 컨테이너 강조 테두리 + 부드러운 링 */
.cxm-custom-box input:focus-visible{ outline:none; }
.cxm-custom-box:focus-within{ border-color:var(--m-chip-on-bg); box-shadow:0 0 0 3px color-mix(in oklab, var(--m-chip-on-bg) 24%, transparent); }
/* 용량 초과 안내 등 멀티라인 에러 */
#hsm-err-msg{ white-space:pre-line; text-align:left; }
/* 라이트 사이드바 — base(.logo_btm #06152e 등)·래퍼 배경을 제압. 순백 대신 아주 연한 회색(사용자 요청: 메뉴 배경 연회색). */
body.catx-on.catx-light #admin_wrap header.style_admin_category,
body.catx-on.catx-light #admin_wrap header.style_admin_category .logo_btm,
body.catx-on.catx-light #admin_wrap header.style_admin_category .nav_view_box,
body.catx-on.catx-light #admin_wrap header.style_admin_category .admin_nav,
body.catx-on.catx-light #admin_wrap header.style_admin_category .catx-nav{ background:#f4f5f7 !important; }

/* ============================================================================
 * 매물관리용 대시보드(dashboard_style 41, admin_main_category_item.php) 전용
 * — 헤더/메뉴/팔레트(--cx-*)는 직원관리용과 공유, 본문 레이아웃만 .catxi-* 로 정의.
 * 다크(body.catx-on) 기본 + 라이트(body.catx-light)는 --cx-* 변수 스왑으로 자동 대응.
 * ==========================================================================*/
/* KPI 6카드 그리드 */
body.catx-on .catxi-kpigrid{ display:grid; grid-template-columns:repeat(6,minmax(0,1fr)); gap:clamp(9px,1.1vw,13px); }
@media (max-width:1439px){ body.catx-on .catxi-kpigrid{ grid-template-columns:repeat(3,minmax(0,1fr)); } }
@media (max-width:700px){ body.catx-on .catxi-kpigrid{ grid-template-columns:repeat(2,minmax(0,1fr)); } }
/* 매물연동용(42) 상단: 광고 KPI 2그룹(각 3장) + 정보 패널(용량/만료일/잔여문자) — 아래 3열(발송목록/발송추이/
 * 최근작업)과 동일한 grid-template-columns 를 써서 정보 패널 가로폭을 '최근 작업' 칸과 정확히 맞춘다. */
body.catx-on .catxi-adtoprow{ display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:clamp(10px,1.2vw,14px); }
body.catx-on .catxi-adkpi-group{ display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:clamp(9px,1.1vw,13px); }
@media (max-width:1439px){ body.catx-on .catxi-adtoprow{ grid-template-columns:1fr; } }
body.catx-on .catxi-kpi{ min-width:0; display:flex; flex-direction:column; gap:8px; border:1px solid var(--cx-line); border-radius:14px; background:var(--cx-card); box-shadow:var(--cx-shadow); padding:clamp(9px,1vh,12px) 14px; cursor:pointer; text-decoration:none; color:inherit; transition:transform .15s ease,border-color .15s ease; }
body.catx-on .catxi-kpi:hover{ border-color:var(--cx-hover-line); transform:translateY(-2px); }
/* 클릭 이벤트 없는 정적 KPI(광고 상태) — 커서/hover 제거 */
body.catx-on .catxi-kpi-static{ cursor:default; }
body.catx-on .catxi-kpi-static:hover{ border-color:var(--cx-line); transform:none; }
/* 광고상태 KPI 카드(버튼형, 클릭→모달): 버튼 기본값 리셋 + 클릭 가능 표시 */
body.catx-on .catxi-sync .catxi-kpi-pop{ cursor:pointer; text-align:left; width:100%; font:inherit; color:inherit; -webkit-appearance:none; appearance:none; }
body.catx-on .catxi-sync .catxi-kpi-pop:hover{ border-color:var(--cx-hover-line); background:var(--cx-hover-bg); }
body.catx-on .catxi-kpi-top{ display:flex; align-items:center; gap:8px; }
body.catx-on .catxi-kpi-ico{ width:26px; height:26px; border-radius:9px; flex-shrink:0; display:flex; align-items:center; justify-content:center; }
body.catx-on .catxi-kpi-name{ flex:1; min-width:0; font-size:var(--dash-font-12, 12px); font-weight:600; color:var(--cx-body); white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }
/* 매물관리용(41) KPI 6칸 라벨만 2px 크게. 모바일(≤700px)에서는 자리가 좁아 줄임표가 생기므로
 * min-width 로 감싸 기존 축소 규칙(11px/10px)을 건드리지 않는다. */
@media (min-width:701px){
	body.catx-on .catxi-item .catxi-kpigrid .catxi-kpi-name{ font-size:14px; }
}
/* 매물연동용 상단 광고 상태 카드의 제목만 강조한다. */
body.catx-on .catxi-sync .catxi-adtoprow .catxi-kpi-name{ font-size:14px; font-weight:700; }
body.catx-on .catxi-kpi-hint{ flex-shrink:0; font-size:var(--dash-font-10_5, 10.5px); font-weight:500; color:var(--cx-sub); white-space:nowrap; }
body.catx-on .catxi-kpi-btn{ flex-shrink:0; align-self:center; margin-left:auto; display:inline-flex; align-items:center; gap:3px; padding:4px 10px; border-radius:8px; background:var(--cx-home-bg); border:1px solid var(--cx-home-line); font-size:var(--dash-font-11, 11px); font-weight:600; color:var(--cx-accent-text); white-space:nowrap; line-height:1.3; }
body.catx-on .catxi-kpi:hover .catxi-kpi-btn{ border-color:var(--cx-hover-line); }
body.catx-on .catxi-kpi-btn.is-pink{ background:color-mix(in oklab, #e0568a 20%, transparent); border-color:color-mix(in oklab, #e0568a 46%, transparent); color:#ff9dc0; }
body.catx-on.catx-light .catxi-kpi-btn.is-pink{ background:color-mix(in oklab, #e0568a 13%, #ffffff); border-color:color-mix(in oklab, #e0568a 42%, transparent); color:#c31e63; }
body.catx-on .catxi-kpi:hover .catxi-kpi-btn.is-pink{ border-color:color-mix(in oklab, #e0568a 70%, transparent); }
/* 연장신청 버튼: 만료 임박 안내용 부드러운 깜박임(글로우+투명도) — 고객 주목 유도 */
@keyframes catxiExtendBlink{ 0%,100%{ opacity:1; box-shadow:0 0 0 0 rgba(224,86,138,0); } 50%{ opacity:.6; box-shadow:0 0 8px 1px rgba(224,86,138,.55); } }
body.catx-on .catxi-kpi-btn.is-pink{ animation:catxiExtendBlink 1.5s ease-in-out infinite; }
@media (prefers-reduced-motion: reduce){ body.catx-on .catxi-kpi-btn.is-pink{ animation:none; } }
body.catx-on .catxi-kpi-val{ flex-wrap:wrap; row-gap:6px; }
body.catx-on .catxi-kpi-val{ display:flex; align-items:baseline; gap:4px; }
body.catx-on .catxi-kpi-val b{ font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace; font-size:clamp(19px,2vw,24px); font-weight:700; line-height:1.05; color:var(--cx-strong); }
body.catx-on .catxi-kpi-val em{ font-size:var(--dash-font-12, 12px); font-style:normal; color:var(--cx-sub); }
/* 매물관리용 세로 컴팩트(직원관리용 영향 없이 .catxi-dash 스코프로만) */
body.catx-on .catxi-dash{ gap:clamp(8px,0.9vw,11px); padding-top:clamp(10px,1vw,14px); padding-bottom:clamp(10px,1.1vw,16px); }
body.catx-on .catxi-dash .catxd-panel{ min-height:0; padding:16px; }
body.catx-on .catxi-dash .catxd-panel-head{ margin-bottom:9px; }
body.catx-on .catxi-dash .catxi-kpigrid{ gap:clamp(8px,0.9vw,11px); }
body.catx-on .catxi-dash .catxd-head{ margin-bottom:2px; }
/* 매물관리용(41, .catxi-item) 전용: .catxd-wrap 이 min-height:100vh + 행 flex-grow(row-staff 1.9/row3 1) 로 뷰포트를 채우려 stretch 돼
 * 카드가 콘텐츠보다 과하게 커지고 statrow 가 벌어졌음 → 콘텐츠 높이대로 나오게 채움 stretch 해제 + row3 355 캡 제외.
 * (매물연동용 42 는 .catxi-item 클래스가 없어 영향 없음) */
body.catx-on .catxd-wrap.catxi-item{ min-height:0; }
/* [매물연동용 42] 매물/고객 현황 통계: 2칸 그리드 + 문구 앞 아이콘 */
body.catx-on .catxi-sync .catxs-statgrid{ display:grid; grid-template-columns:1fr 1fr; gap:7px; margin-bottom:10px; }
/* [42] 3행 매물/고객 현황: 3카드와 바로 아래 통계행이 딱 붙어 답답하던 부분에 여백.
 * 41(.catxi-item)은 카드 다음 .catxi-cli-list 가 이미 margin-top 을 갖고 있어 제외하고 42 만 적용. */
body.catx-on .catxi-sync .catxi-summary-row .catxi-cli3{ margin-bottom:12px; }
body.catx-on .catxi-sync .catxs-statrow{ gap:7px; }
body.catx-on .catxi-sync .catxs-statrow > .catxs-stat-ico{ flex:0 0 auto !important; width:22px; height:22px; border-radius:6px; display:inline-flex; align-items:center; justify-content:center; }
body.catx-on .catxi-sync .catxs-statrow > .catxs-stat-lb{ flex:1; min-width:0; font-size:var(--dash-font-12_5, 12.5px); color:var(--cx-body); white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }
body.catx-on .catxi-sync .catxi-summary-row .catxs-statrow > .catxs-stat-lb{ font-size:13.5px; }
body.catx-on .catxi-sync .catxi-summary-row .catxs-statrow > b{ font-size:15px; }
body.catx-on .catxi-sync .catxi-summary-row .catxs-statrow > em{ font-size:var(--dash-font-12, 12px); }
body.catx-on .catxi-sync .catxi-summary-row .catxi-addbtn{ font-size:13px; font-weight:700; }
@media(min-width:993px){
 body.catx-on .catxd-wrap.catxi-sync > .catxd-row3.catxi-summary-row{flex:0 0 auto;}
 body.catx-on .catxi-sync .catxi-summary-row .catxd-panel{padding:14px;}
 body.catx-on .catxi-sync .catxi-summary-row .catxi-addbtn{margin-top:auto!important;}
 body.catx-on .catxi-sync .catxi-summary-row .catxi-clirows{margin-bottom:10px;}
 body.catx-on .catxi-sync .catxi-summary-row .catxi-clirows .catxi-statrow{flex:1;align-items:center;}
 body.catx-on .catxi-sync .catxi-summary-row .catxi-sol{flex:1;gap:10px;}
 body.catx-on .catxi-sync .catxi-summary-row .catxi-sol-item{flex:1;display:flex;flex-direction:column;justify-content:center;box-shadow:none;}
}

@media(min-width:993px){
 body.catx-on .catxd-wrap.catxi-sync{min-height:calc(100dvh - var(--cx-topbar-h));}
 body.catx-on .catxd-wrap.catxi-sync > .catxd-row3{flex:1 1 auto;align-items:stretch;}
 body.catx-on .catxd-wrap.catxi-sync > .catxd-row3 > .catxd-panel{max-height:none;}
}
/* 3행(매물현황/고객현황/홈페이지방문현황)에 .catxs-body 가 들어가면서 관리자 전용
 * ":has(.catxs-body) .catxd-row3{flex:0 0 auto;...} / .catxd-panel{max-height:355px;...}" 규칙(특이도가 더 높음)이
 * 매물연동용 두 .catxd-row3(발송목록 행 포함) 모두에 같이 걸려 패널이 355px로 잘리는 것을 방지.
 * .catxi-dash 를 더해 더 높은 특이도로 원래 값(위 993px 블록과 동일)을 다시 고정한다. */
@media(min-width:993px){
 /* 2행(발송목록/추이/작업)·3행(매물/고객/방문) 세로 균등: 둘 다 flex:1 1 auto + 내부 리스트 스크롤.
  * (grow 비율을 0.85:1.15 로 바꿔본 적 있으나 남는 공간이 없어 시각 변화가 없었음 → 균등으로 원복.
  *  3행 여백은 아래 .catxi-cli3 margin-bottom 처럼 콘텐츠 간격으로 확보한다.) */
 body.catx-on .catxd-wrap.catxi-sync.catxi-dash > .catxd-row3,
 body.catx-on .catxd-wrap.catxi-sync.catxi-dash > .catxd-row3.catxi-summary-row{flex:1 1 auto;align-items:stretch;}
 body.catx-on .catxd-wrap.catxi-sync.catxi-dash > .catxd-row3 > .catxd-panel{max-height:none;display:flex;flex-direction:column;min-height:0;}
 body.catx-on .catxd-wrap.catxi-sync.catxi-dash > .catxd-row3 .catxi-list{flex:1;min-height:0;overflow-y:auto;}
 /* 매물/고객 현황 통계 그리드가 남은 세로를 채워 여백 제거(행 균등 확대) */
 body.catx-on .catxd-wrap.catxi-sync.catxi-dash > .catxd-row3.catxi-summary-row .catxs-statgrid{flex:1;min-height:0;grid-auto-rows:1fr;}
}
/* 홈페이지 방문 현황 차트(매물연동용): 관리자 :not(.catxi-dash) 전용 처리(차트 flex:1, 막대 height:100%)를
 * .catxi-sync 에도 동일 적용 — 안 하면 막대가 고정 60px 로 남고 패널 하단에 빈 여백이 생긴다. */
body.catx-on .catxi-sync .catxd-row3 .catxd-visit-chart{ flex:1; min-height:120px; }
body.catx-on .catxi-sync .catxd-row3 .catxd-vc-bars{ flex:1; min-height:90px; }
body.catx-on .catxi-sync .catxd-row3 .catxd-vc-bar{ height:100%; }
/* [매물관리용2(43), .catxi-item] 방문현황 차트: 배경박스 + 패널 세로 채움(catxs-body 미사용이라 별도 지정 — :has(.catxs-body) 40앱셸 규칙 회피 목적) */
body.catx-on .catxi-item .catxd-row3 > .catxd-panel:has(.catxd-visit-chart){ display:flex; flex-direction:column; }
body.catx-on .catxi-item .catxd-row3 > .catxd-panel:has(.catxd-visit-chart) > .catxd-panel-body{ flex:1; min-height:0; display:flex; flex-direction:column; }
body.catx-on .catxi-item .catxd-row3 .catxd-visit-chart{ flex:1; min-height:120px; padding:22px 10px 8px; border:1px solid var(--cx-line-soft); border-radius:10px; background:color-mix(in oklab,var(--cx-row) 40%,white); }
body.catx-on .catxi-item .catxd-row3 .catxd-vc-bars{ flex:1; min-height:90px; }
body.catx-on .catxi-item .catxd-row3 .catxd-vc-bar{ height:100%; }
body.catx-on .catxi-top-viewed{min-height:300px;overflow:hidden;}
body.catx-on .catxi-top-viewed > .catxi-list{flex:1 1 0;min-height:0;overflow-y:auto;overflow-x:hidden;}
body.catx-on .catxi-top-viewed > .catxi-list .catxi-lrow{flex-shrink:0;}
@media(max-width:992px){body.catx-on .catxi-top-viewed > .catxi-list{flex:0 1 auto;max-height:320px;}}
/* [41] 많이 본 매물 최소 높이 복구.
 * 위 .catxi-top-viewed{min-height:300px}(특이도 0,2,1)가 아래 row3 규칙
 *   .catxd-wrap.catxi-item > .catxd-row3 > .catxd-panel{min-height:0}(0,5,1)
 *   .catxi-item .catxd-row3 > .catxd-panel{min-height:0}(0,3,1)
 * 에 밀려 무력화 → 폭을 줄이면 목록(flex:1 1 0)이 0 이 되며 헤더만 남고 접히던 문제.
 * 더 높은 특이도(0,6,1)로 최소 높이를 되살리되, 짧은 뷰포트에서 페이지 스크롤이
 * 과해지지 않도록 고정 300px 대신 뷰포트 연동 clamp 사용. */
body.catx-on .catxd-wrap.catxi-item > .catxd-row3 > .catxd-panel.catxi-top-viewed{ min-height:clamp(200px,32vh,300px); }

@media(min-width:993px){
 body.catx-on .catxd-wrap.catxi-item{min-height:calc(100dvh - var(--cx-topbar-h));}
 body.catx-on .catxd-wrap.catxi-item > .catxd-row-staff{flex:1.1 0 auto;}
 body.catx-on .catxd-wrap.catxi-item > .catxd-row3{flex:1 1 auto;min-height:0;}
 body.catx-on .catxd-wrap.catxi-item > .catxd-row3 > .catxd-panel{max-height:none;}
 /* 매물관리용(41) 넓은 화면 스크롤 방지: 위 두 flex-grow 행이 '남은 세로'를 나눠 갖게 했는데,
  * 패널(catxd-panel)의 기본 min-height(콘텐츠 기준 auto)가 grid stretch 를 뚫고 넘쳐서
  * wrap 이 뷰포트보다 커지고 페이지 스크롤이 생기던 문제. min-height:0 으로 stretch 가 실제로
  * 적용되게 하고, 넘치는 내용은 패널 내부(.catxi-list/.catxi-clirows 등)에서만 스크롤한다.
  * 그래도 남는 미세한 잔여 스크롤은 3행(row3) 자체의 flex-shrink 를 0→1 + min-height:0 으로 열어
  * 마지막 몇 px 까지 안쪽 리스트가 흡수하도록 함(2행 row-staff 는 그대로 유지). */
 body.catx-on .catxd-wrap.catxi-item > .catxd-row-staff > .catxd-panel,
 body.catx-on .catxd-wrap.catxi-item > .catxd-row3 > .catxd-panel{ min-height:0; }
}
body.catx-on .catxi-item .catxd-row-staff,
body.catx-on .catxi-item .catxd-row3{ flex:0 0 auto; }
/* PC: 목록 패널(하단 TOP5/고객/최근작업 + 오래된 매물) 최대 세로 355px — 넘칠 때만 목록 내부 스크롤. 통계패널(매물관리현황)은 버튼 잘림 방지로 제외 */
@media (min-width:993px){
	body.catx-on .catxi-dash .catxd-row3 .catxd-panel{ max-height:355px; box-sizing:border-box; }
	body.catx-on .catxi-dash .catxi-clirows{ overflow-y:auto; }
	/* 매물관리용(41) row3: '많이 본 매물 TOP5'(≈342px) 높이 기준으로 맞춤 → 최근 매물 작업 등 넘치는 목록은 내부 스크롤 */
	body.catx-on .catxi-item .catxd-row3 .catxd-panel{ max-height:344px; box-sizing:border-box; }
	/* 솔루션 정보는 목록이 아니라 3개 고정 카드 → 355px 캡 제외(내용 넘침 방지). 넘칠 땐 내부 스크롤 */
	body.catx-on .catxi-dash .catxd-row3 .catxi-solpanel{ max-height:none; }
	body.catx-on .catxi-dash .catxd-row3 .catxi-solpanel .catxi-sol{ min-height:0; }
}
/* 직원관리용(40) 관리자뷰 — 넓은 화면(≥1181px, KPI행이 1줄로 펴지는 폭)에서 대시보드를 뷰포트 높이에 맞춰
 * 페이지 스크롤 제거. wrap을 (100vh - topbar) 고정높이 flex컬럼으로 → head/KPI행은 자연높이, 2·3행이 남은
 * 공간을 같은 비율로 나누고, 직원 표와 일정은 내부 스크롤. :has(.catxd-sttable)로 40 관리자뷰만 타깃(41/42 무영향).
 * (993~1180px에선 KPI행이 2줄로 접혀 남는 세로가 부족 → 이 처리 제외, 자연 흐름/스크롤 허용) */
@media (min-width:1181px){
	body.catx-on .catxd-wrap:has(.catxd-sttable){ height:calc(100vh - var(--cx-topbar-h)); min-height:0; }
	body.catx-on .catxd-wrap:has(.catxd-sttable) .catxd-row-staff{ flex:1 1 0; min-height:0; }
	body.catx-on .catxd-wrap:has(.catxd-sttable) .catxd-row3{ flex:1 1 0; min-height:0; }
	body.catx-on .catxd-row-staff:has(.catxd-sttable) .catxd-panel{ max-height:none; min-height:0; }
	body.catx-on .catxd-row-staff:has(.catxd-sttable) .catxd-panel-body.catxd-scroll{ overflow-y:auto; min-height:0; }
}

/* 공용: 패널 헤더 우측 chip/링크, 스크롤 목록 */
body.catx-on .catxi-chip{ display:inline-flex; align-items:center; gap:6px; padding:5px 10px; border-radius:9px; background:var(--cx-row); border:1px solid var(--cx-line); font-size:var(--dash-font-11_5, 11.5px); color:var(--cx-body); cursor:pointer; }
body.catx-on .catxi-chip:hover{ border-color:var(--cx-hover-line); }
body.catx-on .catxi-list{ flex:1; min-height:0; overflow-y:auto; }
body.catx-on .catxi-lrow{ display:flex; align-items:center; gap:10px; padding:clamp(6px,.9vh,10px) 3px; border-top:1px solid var(--cx-line-soft); cursor:pointer; text-decoration:none; }
body.catx-on .catxi-lrow:first-child{ border-top:0; }
body.catx-on .catxi-lrow:hover{ background:var(--cx-hover-bg); }
/* 클릭 이벤트 없는 행(최근 고객 작업): 커서/hover 제거 */
body.catx-on .catxi-lrow-noclick{ cursor:default; }
body.catx-on .catxi-lrow-noclick:hover{ background:none; }
body.catx-on .catxi-lname{ flex:1; min-width:0; font-size:var(--dash-font-12_5, 12.5px); font-weight:600; color:var(--cx-strong); overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
body.catx-on .catxi-lmeta{ font-size:var(--dash-font-11, 11px); color:var(--cx-sub); white-space:nowrap; }

/* 매물 관리 현황: 좌 통계행 + 우 미니 막대차트 */
body.catx-on .catxi-mgmt{ flex:1; min-height:0; display:grid; grid-template-columns:minmax(190px,.85fr) minmax(0,1.15fr); gap:14px; }
@media (max-width:560px){ body.catx-on .catxi-mgmt{ grid-template-columns:1fr; } }
body.catx-on .catxi-statcol{ min-width:0; display:flex; flex-direction:column; gap:8px; }
body.catx-on .catxi-statrows{ flex:1; min-height:0; display:flex; flex-direction:column; gap:9px; }
body.catx-on .catxi-statrow{ display:flex; align-items:center; gap:8px; padding:clamp(6px,0.7vh,8px) 12px; border-radius:10px; background:var(--cx-chip); border:1px solid var(--cx-line); }
body.catx-on .catxi-statrow > span:first-child{ flex:1; min-width:0; font-size:var(--dash-font-12_5, 12.5px); color:var(--cx-body); white-space:nowrap; }
body.catx-on .catxi-statrow b{ font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace; font-size:14px; font-weight:700; }
body.catx-on .catxi-statrow em{ font-size:var(--dash-font-11, 11px); font-style:normal; color:var(--cx-sub); }
body.catx-on .catxi-addbtn{ flex-shrink:0; display:flex; align-items:center; justify-content:center; gap:5px; padding:7px 12px; border-radius:11px; background:var(--cx-home-bg); border:1px solid var(--cx-home-line); font-size:var(--dash-font-12, 12px); font-weight:600; color:var(--cx-accent-text); text-decoration:none; cursor:pointer; transition:background .12s ease, border-color .12s ease; }
/* hover: 크기 변화 없이 배경 농도 + 테두리만 강조(클릭 가능 인지성) */
body.catx-on .catxi-addbtn:hover{ background:linear-gradient(100deg, color-mix(in oklab, var(--cx-accent) 44%, transparent), color-mix(in oklab, var(--cx-accent) 22%, transparent)); border-color:var(--cx-hover-line); }
/* 보라 변형(고객 등록) — 인라인 style 로는 hover 가 안 먹어 클래스로 분리 */
body.catx-on .catxi-addbtn.is-violet{ background:color-mix(in oklab, var(--cx-violet-v) 14%, transparent); border-color:color-mix(in oklab, var(--cx-violet-v) 30%, transparent); color:var(--cx-violet-v); }
body.catx-on .catxi-addbtn.is-violet:hover{ background:color-mix(in oklab, var(--cx-violet-v) 26%, transparent); border-color:color-mix(in oklab, var(--cx-violet-v) 55%, transparent); }
body.catx-on .catxi-chartcol{ min-width:0; display:flex; flex-direction:column; gap:9px; }
body.catx-on .catxi-legend{ display:flex; align-items:center; gap:12px; flex-wrap:wrap; font-size:var(--dash-font-11, 11px); color:var(--cx-body); }
body.catx-on .catxi-legend .lg{ display:flex; align-items:center; gap:5px; }
body.catx-on .catxi-legend .dot{ width:8px; height:8px; border-radius:3px; }
body.catx-on .catxi-legend .cap{ flex:1; min-width:0; font-size:var(--dash-font-11_5, 11.5px); color:var(--cx-sub); white-space:nowrap; }
body.catx-on .catxi-chart{ flex:1; min-height:96px; display:flex; flex-direction:column; gap:6px; }
body.catx-on .catxi-chart-bars{ flex:1; min-height:0; display:flex; align-items:flex-end; gap:clamp(6px,1vw,14px); padding-bottom:6px; border-bottom:1px solid var(--cx-line); }
body.catx-on .catxi-chart-bars > div{ flex:1; min-width:0; height:100%; display:flex; align-items:flex-end; justify-content:center; gap:3px; }
body.catx-on .catxi-chart-bars i{ width:9px; border-radius:3px 3px 0 0; display:block; }
body.catx-on .catxi-chart-days{ display:flex; gap:clamp(6px,1vw,14px); }
body.catx-on .catxi-chart-days span{ flex:1; text-align:center; font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace; font-size:var(--dash-font-9_5, 9.5px); color:var(--cx-sub2); }

/* ── [매물관리용 41 전용] 매물 관리 현황: 2열 박스 그리드 + 아이콘 + 그래프 배경박스 (.catxi-item 스코프 → 연동42 무영향) ── */
body.catx-on .catxi-item .catxi-mgmt{ grid-template-columns:minmax(300px,1.05fr) minmax(0,.95fr); }
body.catx-on .catxi-item .catxi-statgrid{ flex:1; min-height:0; display:grid; grid-template-columns:1fr 1fr; grid-auto-rows:1fr; gap:8px; }
body.catx-on .catxi-item .catxi-statbox{ display:flex; align-items:center; gap:7px; padding:8px 10px; border-radius:10px; background:var(--cx-chip); border:1px solid var(--cx-line); min-width:0; }
body.catx-on .catxi-item .catxi-statbox-ic{ flex:0 0 auto; width:24px; height:24px; display:inline-flex; align-items:center; justify-content:center; border-radius:7px; }
body.catx-on .catxi-item .catxi-statbox-label{ flex:1; min-width:0; font-size:var(--dash-font-11_5, 11.5px); color:var(--cx-body); white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }
/* 매물관리용(41) 매물 관리 현황 통계 라벨 1px 크게. 모바일(10.5px)은 그대로. */
@media (min-width:701px){
	body.catx-on .catxi-item .catxi-statbox-label{ font-size:var(--dash-font-12_5, 12.5px); }
}
body.catx-on .catxi-item .catxi-statbox-val{ flex:0 0 auto; display:flex; align-items:baseline; gap:2px; }
body.catx-on .catxi-item .catxi-statbox-val b{ font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace; font-size:18px; font-weight:800; }
body.catx-on .catxi-item .catxi-statbox-val em{ font-size:var(--dash-font-10_5, 10.5px); font-style:normal; color:var(--cx-sub); }
body.catx-on .catxi-item .catxi-chartcol{ background:var(--cx-chip); border:1px solid var(--cx-line); border-radius:10px; padding:12px; }
/* [42] 7일 발송 추이 그래프도 41(.catxi-chartcol)과 동일한 박스로 감싼다.
 * 42 는 별도 래퍼가 없어 .catxi-chart 에 직접 적용. 인라인 min-height:120px 가 있어
 * padding 이 높이에 더해지지 않도록 box-sizing:border-box 를 함께 지정. */
body.catx-on .catxi-sync .catxi-chart{ box-sizing:border-box; background:var(--cx-chip); border:1px solid var(--cx-line); border-radius:10px; padding:12px; }
@media (max-width:560px){ body.catx-on .catxi-item .catxi-mgmt{ grid-template-columns:1fr; } /* 통계 박스는 모바일에서도 2칸 유지(요청) */
	/* 모바일은 폭이 좁아 문구 잘림 → 통계 박스 앞 아이콘 숨겨 문구 공간 확보(요청) */
	body.catx-on .catxi-item .catxi-statbox-ic{ display:none !important; }
	body.catx-on .catxi-item .catxi-statbox{ padding-left:11px; }
}

/* 오래된 매물: 3버킷 + 목록 */
body.catx-on .catxi-buckets{ flex-shrink:0; display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:9px; margin-bottom:11px; }
/* 버킷 색상은 인라인 대신 --bk(색) / --bk-bg(배경%) / --bk-bd(테두리%) 변수로 받는다.
 * 인라인 background/border 로는 :hover 가 덮이지 않아 마우스 오버 효과가 안 먹기 때문. */
body.catx-on .catxi-bucket{ display:flex; flex-direction:column; align-items:center; gap:3px; padding:clamp(7px,1.05vh,11px) 8px; border-radius:12px; cursor:pointer; text-align:left; font:inherit;
	background:color-mix(in oklab, var(--bk) var(--bk-bg), var(--cx-panel));
	border:1px solid color-mix(in oklab, var(--bk) var(--bk-bd), transparent);
	transition:background .12s ease, border-color .12s ease; }
/* hover: 크기 변화 없이 각 버킷 고유색의 배경·테두리만 진하게 */
body.catx-on .catxi-bucket:hover{ background:color-mix(in oklab, var(--bk) 20%, var(--cx-panel)); border-color:color-mix(in oklab, var(--bk) 72%, transparent); }
body.catx-on .catxi-bucket .bl{ font-size:var(--dash-font-11_5, 11.5px); color:var(--cx-sub); white-space:nowrap; }
/* 오래된 매물 구간 라벨(30/60/90일 이상) 1px 크게. 모바일(10.5px)은 그대로. */
@media (min-width:701px){
	body.catx-on .catxi-item .catxi-bucket .bl{ font-size:var(--dash-font-12_5, 12.5px); }
}
body.catx-on .catxi-bucket .bv{ display:flex; align-items:baseline; gap:2px; }
body.catx-on .catxi-bucket .bv b{ font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace; font-size:clamp(17px,1.9vw,21px); font-weight:700; }
body.catx-on .catxi-bucket .bv em{ font-size:var(--dash-font-11, 11px); font-style:normal; color:var(--cx-sub); }

/* 고객 현황: 상단 요약 + 통계행 */
body.catx-on .catxi-cli-top{ flex-shrink:0; display:flex; align-items:center; gap:12px; padding:clamp(9px,1vh,11px) 14px; border-radius:13px; background:var(--cx-row); border:1px solid var(--cx-line-soft); margin-bottom:10px; }
body.catx-on .catxi-cli-ico{ width:36px; height:36px; border-radius:11px; background:var(--cx-home-bg); border:1px solid var(--cx-home-line); display:flex; align-items:center; justify-content:center; flex-shrink:0; }
body.catx-on .catxi-cli-top .cl{ flex:1; min-width:0; font-size:var(--dash-font-12, 12px); color:var(--cx-body); }
body.catx-on .catxi-cli-top .cv{ font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace; font-size:clamp(18px,1.7vw,21px); font-weight:700; color:var(--cx-strong); }
body.catx-on .catxi-cli-top .cu{ font-size:var(--dash-font-11_5, 11.5px); color:var(--cx-sub); }
body.catx-on .catxi-clirows{ flex:1; min-height:0; display:flex; flex-direction:column; gap:8px; }

/* 태그(등록/수정/삭제) */
body.catx-on .catxi-tag{ flex-shrink:0; font-size:var(--dash-font-10_5, 10.5px); font-weight:600; padding:3px 8px; border-radius:7px; white-space:nowrap; }
body.catx-on .catxi-rank{ font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace; font-size:var(--dash-font-11_5, 11.5px); font-weight:700; width:12px; text-align:center; flex-shrink:0; }
body.catx-on .catxi-thumb{ width:34px; height:26px; border-radius:7px; background:var(--cx-track); border:1px solid var(--cx-line-soft); display:flex; align-items:center; justify-content:center; flex-shrink:0; }
body.catx-on .catxi-views b{ font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace; font-size:13px; font-weight:700; color:var(--cx-accent-text); }
body.catx-on .catxi-views em{ font-size:var(--dash-font-10_5, 10.5px); font-style:normal; color:var(--cx-sub); }
/* [매물관리용 41] 고객 현황: 상단 3칸 스탯 + 하단 고객 목록 */
body.catx-on .catxd-wrap .catxi-cli3{ display:grid; grid-template-columns:repeat(3,1fr); gap:8px; flex:0 0 auto; }
body.catx-on .catxd-wrap .catxi-cli3box{ display:flex; flex-direction:column; align-items:center; gap:2px; padding:12px 6px; border-radius:10px; background:var(--cx-chip); border:1px solid var(--cx-line); text-decoration:none; min-width:0; }
body.catx-on .catxd-wrap .catxi-cli3-ic{ width:26px; height:26px; display:inline-flex; align-items:center; justify-content:center; border-radius:8px; margin-bottom:3px; flex:0 0 auto; }
body.catx-on .catxd-wrap .catxi-cli3-v{ display:flex; align-items:baseline; gap:1px; }
body.catx-on .catxd-wrap .catxi-cli3-v b{ font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace; font-size:18px; font-weight:800; }
body.catx-on .catxd-wrap .catxi-cli3-v em{ font-size:var(--dash-font-10, 10px); font-style:normal; color:var(--cx-sub); }
body.catx-on .catxd-wrap .catxi-cli3-l{ font-size:var(--dash-font-11, 11px); color:var(--cx-body); white-space:nowrap; overflow:hidden; text-overflow:ellipsis; max-width:100%; }
body.catx-on .catxi-sync .catxi-summary-row .catxi-cli3-l{ font-size:var(--dash-font-12, 12px); }
/* 매물관리용(41) 고객 현황 3칸 라벨(전체/손님지/물건지 고객)만 1px 크게.
 * 모바일(≤700px)에는 10px 로 줄이는 규칙이 있어 min-width 로 감싼다. */
@media (min-width:701px){
	body.catx-on .catxi-item .catxi-cli3-l{ font-size:var(--dash-font-12, 12px); }
}
body.catx-on .catxi-item .catxi-cli-list{ flex:1; min-height:0; margin-top:9px; }
body.catx-on .catxi-item .catxi-cli-avt{ flex:0 0 auto; width:28px; height:28px; display:inline-flex; align-items:center; justify-content:center; border-radius:50%; background:var(--cx-chip); border:1px solid var(--cx-line); }
/* 고객 목록 행 한 줄: 분류칩 | 이름 | 연락처 */
body.catx-on .catxi-item .catxi-cli-list .catxi-lrow{ align-items:center; gap:7px; }
body.catx-on .catxi-item .catxi-cli-type{ flex:0 0 auto; display:inline-flex; align-items:center; padding:2px 8px; border-radius:999px; background:color-mix(in oklab, var(--cx-accent) 12%, transparent); border:1px solid color-mix(in oklab, var(--cx-accent) 26%, transparent); color:var(--cx-accent-text); font-size:var(--dash-font-10_5, 10.5px); font-weight:600; white-space:nowrap; }
body.catx-on .catxi-item .catxi-cli-list .catxi-lname{ flex:0 1 auto; min-width:0; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
body.catx-on .catxi-item .catxi-cli-hp,
body.catx-on .catxi-sync .catxi-cli-hp{ flex:1; min-width:0; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace; }
/* [매물목록] 등록된 매물 없음 빈 상태: 아이콘 + 아래 문구 + 박스 가운데 정렬(catx 전용) */
body.catx-on .catx-empty-list{ display:flex; flex-direction:column; align-items:center; justify-content:center; gap:12px; min-height:min(46vh, 360px); padding:40px 16px; color:var(--cx-sub); }
body.catx-on .catx-empty-list svg{ color:var(--cx-sub2); opacity:.85; }
body.catx-on .catx-empty-list span{ font-size:14px; color:var(--cx-sub); }
/* [매물관리용 41] 데스크톱(≥993): 행을 강제로 늘리거나 줄이지 않고 '내용 높이'대로 둔다(잘림/붕괴 방지).
 *  - 2행(매물관리현황+오래된매물)은 전체 표시(억지 축소·내부스크롤 금지 → 8개 통계박스+차트 안 잘림).
 *  - 3행(TOP10/고객현황/최근작업) '목록 패널'만 최대높이 캡(아래 1184줄)으로 내부 스크롤 → 3행이 과하게 길어지지 않음.
 *  ≤992 는 모바일 스택(앱셸 미적용) → 좁은 화면 레이아웃 깨짐 없음. */
@media (min-width:993px){
	body.catx-on .catxd-wrap.catxi-item{ min-height:0 !important; height:auto !important; }
	body.catx-on .catxi-item .catxd-row-staff,
	body.catx-on .catxi-item .catxd-row3{ flex:0 0 auto !important; align-items:stretch; }
	body.catx-on .catxi-item .catxd-row-staff > .catxd-panel,
	body.catx-on .catxi-item .catxd-row3 > .catxd-panel{ display:flex; flex-direction:column; min-height:0; }
	/* 3행 목록만 내부 스크롤(패널 max-height 는 1184줄에서 지정). 매물관리현황 통계그리드는 목록이 아니라 스크롤 대상 아님 → 전체 표시. */
	body.catx-on .catxi-item .catxd-row3 .catxi-list{ overflow-y:auto; min-height:0; }
}
/* [매물관리용 41·매물연동용 42] 최근 작업 행 작업자(직원명) — 시간 뒤 작은 칩 */
body.catx-on .catxi-item .catxi-worker,
body.catx-on .catxi-sync .catxi-worker{ flex:0 0 auto; display:inline-flex; align-items:center; gap:3px; margin-left:6px; padding:2px 7px; border-radius:999px; background:var(--cx-chip); border:1px solid var(--cx-line); font-size:var(--dash-font-10_5, 10.5px); color:var(--cx-sub); white-space:nowrap; }
body.catx-on .catxi-item .catxi-worker svg{ flex:0 0 auto; opacity:.8; }
/* [매물관리용 41] 많이 본 매물 조회수 = 눈 아이콘 + 배지(pill) */
body.catx-on .catxi-item .catxi-views{ flex:0 0 auto; display:inline-flex; align-items:center; gap:4px; padding:3px 9px; border-radius:999px; background:color-mix(in oklab, var(--cx-accent) 12%, transparent); border:1px solid color-mix(in oklab, var(--cx-accent) 26%, transparent); color:var(--cx-accent-text); }
/* 오래된 매물 '마지막 활동' — 조회수(.catxi-views)와 동일한 pill 배지.
 * 경과일 색(90일↑ red / 60일↑ amber / 그 외 sub)은 행별 --ag 변수로 받아 유지한다. */
body.catx-on .catxi-item .catxi-aged{ flex:0 0 auto; display:inline-flex; align-items:center; gap:4px; padding:3px 9px; border-radius:999px; font-size:var(--dash-font-10_5, 10.5px); white-space:nowrap; background:color-mix(in oklab, var(--ag) 12%, transparent); border:1px solid color-mix(in oklab, var(--ag) 26%, transparent); color:var(--ag); }
body.catx-on .catxi-item .catxi-aged b{ font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace; font-size:var(--dash-font-12, 12px); font-weight:700; color:var(--ag); }

/* 오래된 매물 모바일: 매물번호+제목 + 마지막 활동일만 노출(주소·거래유형·금액 숨김) → 가로 스크롤 방지 */
@media (max-width:700px){
	body.catx-on .catxi-item .catxi-lrow:has(> .catxi-aged){ gap:7px; }
	body.catx-on .catxi-item .catxi-lrow:has(> .catxi-aged) .catxi-lmeta{ display:none; }
	body.catx-on .catxi-item .catxi-lrow:has(> .catxi-aged) .catxi-lname{ flex:1 1 auto; min-width:0; }
}
body.catx-on .catxi-item .catxi-views b{ font-size:var(--dash-font-12, 12px); color:var(--cx-accent-text); }
body.catx-on .catxi-item .catxi-views em{ font-size:var(--dash-font-10, 10px); color:var(--cx-accent-text); opacity:.8; }
body.catx-on .catxi-ago{ font-size:var(--dash-font-10_5, 10.5px); color:var(--cx-sub); white-space:nowrap; }

/* ===== 매물연동용(42) 전용 컴포넌트 ===== */
/* 상태 뱃지(광고 상태) */
/* 아이콘+라벨 정렬용 inline-flex. gap 은 아이콘이 있을 때만 의미가 있어 텍스트 전용 배지는 기존과 동일하게 보인다. */
body.catx-on .catxi-badge{ flex-shrink:0; display:inline-flex; align-items:center; gap:4px; font-size:var(--dash-font-10_5, 10.5px); font-weight:600; padding:3px 10px; border-radius:20px; white-space:nowrap; }
/* 네이버 발송 매물 목록 행 */
body.catx-on .catxi-brow{ display:flex; align-items:center; gap:11px; padding:clamp(8px,1vh,11px) 4px; border-top:1px solid var(--cx-line-soft); cursor:pointer; text-decoration:none; }
body.catx-on .catxi-brow:first-child{ border-top:0; }
body.catx-on .catxi-brow:hover{ background:var(--cx-hover-bg); }
body.catx-on .catxi-brow-ico{ width:34px; height:30px; border-radius:8px; background:var(--cx-track); border:1px solid var(--cx-line-soft); display:flex; align-items:center; justify-content:center; flex-shrink:0; color:var(--cx-sub); }
body.catx-on .catxi-brow-main{ flex:1; min-width:0; display:flex; flex-direction:column; gap:2px; }
body.catx-on .catxi-brow-id{ font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace; font-size:var(--dash-font-10_5, 10.5px); color:var(--cx-sub2); }
/* 매물번호 칩 */
/* 매물번호 배지: 배경이 진해 숫자가 묻히던 문제 → 배경 연하게(--cx-track→--cx-row) + 글자 진하게(--cx-sub→--cx-body) */
body.catx-on .catxi-brow-no{ align-self:flex-start; display:inline-block; font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace; font-size:var(--dash-font-10, 10px); font-weight:700; color:var(--cx-body); background:var(--cx-row); border:1px solid var(--cx-line-soft); border-radius:5px; padding:1px 6px; line-height:1.5; }
/* 매물번호 + 네이버 매물번호 줄 */
body.catx-on .catxi-brow-nos{ display:flex; align-items:center; flex-wrap:wrap; gap:4px; margin-bottom:3px; }
/* 네이버 매물번호 칩(데이터 있을 때만) — 네이버 그린, 클릭 시 네이버 매물 열기 */
body.catx-on .catxi-brow-nno{ display:inline-flex; align-items:center; font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace; font-size:var(--dash-font-10, 10px); font-weight:700; color:#00a44f; background:color-mix(in oklab, #03c75a 14%, transparent); border:1px solid color-mix(in oklab, #03c75a 40%, transparent); border-radius:5px; padding:1px 6px; line-height:1.5; cursor:pointer; }
body.catx-on .catxi-brow-nno:hover{ background:color-mix(in oklab, #03c75a 22%, transparent); }
/* 네이버 발송 목록 썸네일: 우측 정보(제목/주소/날짜)와 균형 맞게 크게 */
body.catx-on .catxi-brow{ gap:12px; }
body.catx-on .catxi-brow .catxi-thumb-sq{ width:54px; height:54px; border-radius:12px; }
body.catx-on .catxi-brow .catxi-thumb-sq .catxi-thumb-ph svg{ width:20px; height:20px; }
body.catx-on .catxi-brow-t{ font-size:var(--dash-font-12_5, 12.5px); font-weight:600; color:var(--cx-strong); white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }
body.catx-on .catxi-brow-a{ font-size:var(--dash-font-11, 11px); color:var(--cx-sub); white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }
body.catx-on .catxi-brow-date{ flex-shrink:0; text-align:right; font-size:var(--dash-font-11_5, 11.5px); color:var(--cx-sub2); font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace; line-height:1.6; }
/* 날짜만 굵고 진하게(라벨 등록·발송 은 보조색 유지) */
body.catx-on .catxi-brow-date b{ font-weight:700; color:var(--cx-body); }
/* 선 그래프(7일 발송 추이) */
body.catx-on .catxi-linewrap{ position:relative; flex:1; min-height:110px; overflow:visible; }
body.catx-on .catxi-linewrap svg{ position:absolute; inset:0; width:100%; height:100%; display:block; }
body.catx-on .catxi-dot{ position:absolute; width:8px; height:8px; border-radius:50%; background:var(--cx-accent); border:2px solid var(--cx-panel); transform:translate(-50%,-50%); box-shadow:0 0 0 1px color-mix(in oklab, var(--cx-accent) 45%, transparent); }
body.catx-on .catxi-dotv{ position:absolute; transform:translate(-50%,-135%); font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace; font-size:var(--dash-font-10, 10px); font-weight:700; color:var(--cx-body); white-space:nowrap; }
/* 주간 발송 요약 3박스 */
/* 3칸은 그래프 위로 이동(요청) → 간격도 margin-top 에서 margin-bottom 으로 */
body.catx-on .catxi-sumrow{ flex-shrink:0; display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:9px; margin-bottom:11px; }
body.catx-on .catxi-sumbox{ padding:clamp(8px,1vh,11px) 12px; border-radius:11px; background:var(--cx-chip); border:1px solid var(--cx-line); }
body.catx-on .catxi-sumbox .l{ display:inline-flex; align-items:center; gap:5px; font-size:var(--dash-font-11, 11px); color:var(--cx-sub); white-space:nowrap; }
body.catx-on .catxi-sync .catxi-sumrow .catxi-sumbox .l{ font-size:13px; }
body.catx-on .catxi-sumbox .v{ margin-top:3px; display:flex; align-items:baseline; gap:2px; }
body.catx-on .catxi-sumbox .v b{ font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace; font-size:clamp(15px,1.7vw,19px); font-weight:700; color:var(--cx-strong); }
body.catx-on .catxi-sumbox .v em{ font-size:var(--dash-font-10_5, 10.5px); font-style:normal; color:var(--cx-sub); }
/* 최근 매물 작업(2줄: 이름+설명) */
body.catx-on .catxi-wrow{ display:flex; align-items:flex-start; gap:10px; padding:clamp(7px,1vh,11px) 3px; border-top:1px solid var(--cx-line-soft); cursor:pointer; text-decoration:none; }
body.catx-on .catxi-wrow:first-child{ border-top:0; }
body.catx-on .catxi-wrow:hover{ background:var(--cx-hover-bg); }
body.catx-on .catxi-wrow-main{ flex:1; min-width:0; display:flex; flex-direction:column; gap:2px; }
body.catx-on .catxi-wrow-t{ font-size:var(--dash-font-12_5, 12.5px); font-weight:600; color:var(--cx-strong); white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }
body.catx-on .catxi-wrow-d{ font-size:var(--dash-font-11, 11px); color:var(--cx-sub); white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }
/* 솔루션 정보 */
body.catx-on .catxi-sol{ display:flex; flex-direction:column; gap:8px; }
body.catx-on .catxi-sol-item{ position:relative; border:1px solid var(--cx-line); border-radius:12px; background:var(--cx-card); box-shadow:var(--cx-shadow); padding:9px 14px; transition:border-color .12s, transform .12s, box-shadow .12s; }
body.catx-on .catxi-sol-item:hover{ border-color:var(--cx-hover-line); transform:translateY(-1px); box-shadow:0 4px 14px rgba(0,0,0,.10); }
body.catx-on .catxi-sol-item.is-expire{ background:color-mix(in oklab, #e0568a 9%, var(--cx-panel)); border-color:color-mix(in oklab, #e0568a 32%, transparent); }
body.catx-on .catxi-sol-row{ display:flex; align-items:center; gap:12px; flex-wrap:wrap; row-gap:9px; }
/* 만료일 카드 우측: D-day 배지 + 연장신청 버튼 세로 스택 */
body.catx-on .catxi-sol-expright{ margin-left:auto; display:flex; flex-direction:column; align-items:flex-end; gap:7px; flex-shrink:0; }
body.catx-on .catxi-sol-ic{ width:30px; height:30px; border-radius:9px; display:flex; align-items:center; justify-content:center; flex-shrink:0; }
body.catx-on .catxi-sol-nm{ font-size:var(--dash-font-12_5, 12.5px); font-weight:500; color:var(--cx-strong); white-space:nowrap; }
body.catx-on .catxi-sol-vl{ margin-left:auto; display:flex; align-items:center; gap:8px; font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace; font-size:15px; font-weight:700; color:var(--cx-strong); white-space:nowrap; }
body.catx-on .catxi-sol-vl em{ font-style:normal; font-family:'Apple SD Gothic Neo','NotoSansKR','NanumBarunGothic','nanum gothic','나눔고딕','apple gothic','맑은 고딕','굴림',sans-serif; font-size:var(--dash-font-11, 11px); font-weight:500; color:var(--cx-sub); }
body.catx-on .catxi-sol-bar{ margin-top:7px; height:6px; border-radius:5px; background:var(--cx-track); overflow:hidden; }
body.catx-on .catxi-sol-bar > i{ display:block; height:100%; border-radius:5px; }
body.catx-on .catxi-sol-pct{ margin-top:3px; text-align:right; font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace; font-size:var(--dash-font-10_5, 10.5px); color:var(--cx-sub); }

/* ============================================================================
 * 모바일 개선(카테고리 대시보드 공통) — ≤700px
 * ==========================================================================*/
/* 모바일 퀵버튼(타이틀 밑)/하단 지원버튼 — 기본 숨김 */
body.catx-on .catxi-mquick, body.catx-on .catxi-mfoot{ display:none; }
body.catx-on .catxi-mqbtn{ display:flex; flex-direction:column; align-items:center; justify-content:center; gap:6px; padding:13px 6px; border-radius:13px; background:var(--cx-chip); border:1px solid var(--cx-line); color:var(--cx-body); font-size:var(--dash-font-12, 12px); font-weight:600; text-decoration:none; }
body.catx-on .catxi-mqbtn.is-primary{ background:var(--cx-home-bg); border-color:var(--cx-home-line); color:var(--cx-accent-text); }
body.catx-on .catxi-mqbtn svg{ color:var(--cx-accent-token); }
body.catx-on .catxi-mqbtn.is-primary svg{ color:var(--cx-accent-text); }
body.catx-on .catxi-mfbtn{ display:flex; align-items:center; justify-content:center; gap:6px; padding:11px 6px; border-radius:11px; background:var(--cx-chip); border:1px solid var(--cx-line); color:var(--cx-body); font-size:var(--dash-font-12, 12px); font-weight:500; text-decoration:none; }
body.catx-on .catxi-mfbtn svg{ color:var(--cx-sub); flex-shrink:0; }

@media (max-width:700px){
	/* #5,#6: 데스크톱 헤더 퀵버튼 숨김, 모바일 퀵/하단 버튼 노출 */
	body.catx-on .catxd-head{ flex-direction:column; align-items:stretch; gap:10px; }
	body.catx-on .catxd-quick{ display:none; }
	body.catx-on .catxi-mquick{ display:grid; grid-template-columns:repeat(3,1fr); gap:8px; margin-top:4px; }
	body.catx-on .catxi-mfoot{ display:grid; grid-template-columns:repeat(3,1fr); gap:8px; margin-top:auto; padding-top:6px; }

	/* #4a: 직원관리용 정보패널 — 용량/만료/문자 3줄로 스택 */
	body.catx-on .catxd-info-line{ flex-wrap:wrap; row-gap:10px; column-gap:10px; }
	body.catx-on .catxd-info-line > .catxd-info-cell:first-child{ width:auto; }
	body.catx-on .catxd-info-gauge{ flex:1 1 60px; min-width:60px; }
	body.catx-on .catxd-info-div{ flex-basis:100%; width:100%; height:0; background:none; margin:0; align-self:stretch; }  /* 세로구분선 → 줄바꿈으로 전환(문자수 다음줄) */
	body.catx-on .catxd-info-btn{ margin-left:auto; }

	/* #4b: 직원 업무 현황 테이블 — 모바일 폭에 맞게 열 축소(넘침 방지) */
	body.catx-on .catxd-sthead, body.catx-on .catxd-strow{ grid-template-columns:minmax(90px,1.7fr) minmax(42px,.7fr) minmax(42px,.7fr) minmax(66px,1fr); gap:4px 6px; }
 body.catx-on :is(.catxd-sthead,.catxd-strow) > :nth-child(4),body.catx-on :is(.catxd-sthead,.catxd-strow) > :nth-child(5){display:none;}
 body.catx-on .catxd-label-pc{display:none;}
 body.catx-on .catxd-label-mobile{display:inline;}
 body.catx-on .catxd-strow .catxd-stname{flex-wrap:wrap;}
 body.catx-on .catxd-strow .catxd-stnamewrap{flex:1;min-width:0;}
 body.catx-on .catxd-strow .catxd-stlogout{margin-left:2px; }
	body.catx-on .catxd-sthead{ font-size:var(--dash-font-11, 11px); letter-spacing:0; padding:7px 8px; word-break:keep-all; }
	body.catx-on .catxd-strow{ padding:10px 8px; font-size:var(--dash-font-12, 12px); }
	body.catx-on .catxd-stlast{ font-size:var(--dash-font-10, 10px); }
	/* 모바일: 이메일 숨김·프로필 축소로 폭 확보 */
	body.catx-on .catxd-stmail{ display:none; }
	body.catx-on .catxd-stpic{ width:24px; height:24px; border-radius:7px; }
	body.catx-on .catxd-stname{ gap:6px; }
	body.catx-on .catxd-stlogout{ width:26px; height:26px; margin-left:2px; padding:0; gap:0; }
 body.catx-on .catxd-stlogout > span{display:none;}

	/* #3: .cxm 모달 — 모바일 뷰포트 안에 들어오게(내부 스크롤) + 전체적으로 컴팩트하게 */
	dialog.cxm{ width:calc(100vw - 20px) !important; max-width:none !important; max-height:calc(100dvh - 24px) !important; margin:auto !important; overflow:auto !important; border-radius:15px; }
	.cxm-head{ padding:16px 16px 13px 18px; }
	.cxm-title{ font-size:17px; margin-top:5px; }
	.cxm-sub{ font-size:var(--dash-font-12, 12px); margin-top:4px; }
	.cxm-summary{ padding:14px 18px 0; gap:8px; }
	/* 모바일: 카드가 좁아 라벨(홈페이지 만료일 등)이 값과 한 줄을 나눠 쓰다 잘리던 문제
	 * → 라벨 위 / 값 아래로 스택해 라벨이 카드 폭을 온전히 쓰게 하고, 그래도 길면 줄바꿈(잘림 대신). */
	.cxm-scard{ padding:11px 13px; flex-direction:column; align-items:flex-start; gap:3px; }
	.cxm-scard-l{ white-space:normal; overflow:visible; text-overflow:clip; line-height:1.35; }
	.cxm-scard-v{ font-size:15px; }
	.cxm-field{ padding:15px 18px 0; }
	.cxm-price{ margin:13px 18px 0; padding:13px 16px 12px; }
	.erm-cost{ margin:12px 18px 0; padding:13px 16px 12px; }
	.erm-cost-h{ font-size:16px; margin-top:4px; }
	.erm-cost-d{ margin-top:5px; }
	.cxm-price-sum{ font-size:var(--dash-font-11_5, 11.5px); }
	.cxm-price-row{ margin-top:5px; }
	.cxm-price-val{ font-size:26px; }
	.cxm-price-foot{ margin-top:10px; padding-top:9px; gap:10px; font-size:var(--dash-font-11, 11px); }
	.cxm-pay{ padding:15px 18px 0; }
	.cxm-account{ padding:13px 14px; }
	.cxm-info{ margin:10px 18px 0; padding:12px 14px; }
	.cxm-refund-note{ margin:12px 18px 14px; }
	.cxm-unavail{ margin:14px 18px 0; padding:14px; }
	.cxm-foot{ grid-template-columns:1fr; margin-top:16px; padding:14px 18px 18px; }
	/* 모바일에서 대시보드 wrap/#admin_wrap 을 뷰포트 높이로 강제 채우지 않음 → 콘텐츠 짧을 때 하단 빈 여백/불필요 스크롤 제거 */
	body.catx-on .catxd-wrap{ min-height:0; }
	body.catx-on #admin_wrap{ min-height:0; }
}

/* ============================================================================
 * 모바일 헤더/드로어 개선 — 상단바 재배치 + 드로어 '전체 메뉴' 헤더/카카오 푸터
 * ==========================================================================*/
body.catx-on .catx-navtoggle-m, body.catx-on .catx-mobmenu-head, body.catx-on .catx-mobmenu-foot, body.catx-on .catx-mobile-shortcuts{ display:none; }
@media (max-width:992px){
	/* 상단바: [알림 · 알림설정] [가운데 상호명] [프로필 · 메뉴] */
	body.catx-on{ --cx-topbar-h:60px; }
	body.catx-on .catx-navtoggle{ display:none; }               /* 왼쪽 햄버거 숨김 */
	body.catx-on .catx-navtoggle-m{ width:34px; height:34px; display:flex; } /* 오른쪽 끝 햄버거 노출 */
	body.catx-on .catx-tb-left{ width:0; min-width:0; flex:0 0 0; }
	body.catx-on .catx-brand{ position:absolute; left:50%; top:50%; z-index:1; display:flex !important; align-items:center; max-width:calc(100% - 180px); transform:translate(-50%,-50%); text-align:center; } /* 상호명 중앙 고정 */
	body.catx-on .catx-brand-name{ font-size:13px; }
	body.catx-on .catx-brand-sub{ font-size:var(--dash-font-9, 9px); }
	body.catx-on .catx-spacer{ display:none; }
	body.catx-on .catx-tb-home, body.catx-on .catx-tb-map, body.catx-on .catx-tb-divider{ display:none !important; }
	/* 프로필: 화살표 삭제 + 아바타만(컴팩트) — 클릭은 아바타로 동작(기존 onclick 유지). 헤더 잘림 방지 */
	body.catx-on .catx-acct-caret{ display:none !important; }
	body.catx-on .catx-acct-btn{ width:34px; height:34px; padding:0 !important; gap:0 !important; overflow:hidden; }
	body.catx-on .catx-acct-avatar{ width:34px; height:34px; border-radius:11px; }
	body.catx-on .catx-tb-right{ position:static; gap:5px; margin-left:auto; }
	body.catx-on .catx-bell{ position:absolute; left:12px; top:50%; z-index:2; width:34px; height:34px; transform:translateY(-50%); }
	body.catx-on .catx-iconbtn.catx-bell:hover{ transform:translateY(-50%); }
	body.catx-on .catx-notif-settings.is-enabled{ position:absolute; left:51px; top:50%; z-index:2; width:34px; height:34px; padding:0; display:flex; align-items:center; justify-content:center; border:1px solid #d9dee7; border-radius:11px; background:#fff; color:#475569; font-family:inherit; cursor:pointer; transform:translateY(-50%); }
	body.catx-on .catx-notif-settings-label{ display:none; }
	body.catx-on .catx-notif-settings-ico{ font-size:16px; line-height:1; }
	/* 알림 설정(톱니): PC(≥993px)에만 배경이 지정돼 있어 모바일에선 아이콘만 떠 보였다 → PC 와 동일한 회색 칩.
	 * (알림 종 버튼 색은 admin_header_category.php 의 PC 규칙과 함께 관리한다) */
	body.catx-on .catx-notif-settings.is-enabled{
		border:1px solid #d9dee7; border-radius:11px; background:#f1f3f5; color:#475569; }
	body.catx-on:not(.catx-light) .catx-notif-settings.is-enabled{
		border-color:var(--cx-line2); background:var(--cx-chip); color:var(--cx-body); }
	body.catx-on .catx-acct, body.catx-on .catx-navtoggle-m{ position:relative; z-index:2; }
	body.catx-on .catx-topbar{ gap:5px; padding-left:12px; padding-right:12px; }

	/* 드로어: head(고정) + 메뉴(스크롤) + foot(고정) 3단 레이아웃 */
	body.catx-on #admin_wrap header.style_admin_category{ display:flex !important; flex-direction:column !important; overflow:hidden !important; }
	body.catx-on #admin_wrap header.style_admin_category .logo_btm{ position:static !important; top:auto !important; left:auto !important; right:auto !important; width:100% !important; height:100% !important; background:transparent !important; box-shadow:none !important; z-index:auto !important; flex:1 1 auto !important; min-height:0 !important; display:flex !important; flex-direction:column !important; overflow:hidden !important; padding:0 !important; }
	body.catx-on #admin_wrap header.style_admin_category .nav_view_box{ flex:1 1 auto !important; min-height:0 !important; overflow-y:auto !important; -webkit-overflow-scrolling:touch; padding:10px 15px 0 !important; }
	body.catx-on #admin_wrap header.style_admin_category .page_info_wrap{ display:none !important; }
	body.catx-on #admin_wrap header.style_admin_category .logo_top,
	body.catx-on #admin_wrap header.style_admin_category .nav_open_btn{ display:none !important; }
	body.catx-on .catx-mobile-shortcuts{ display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); align-items:center; gap:8px; margin:0 0 10px; }
	body.catx-on .catx-mobile-shortcut{ min-height:40px; display:flex; align-items:center; justify-content:center; gap:7px; border-radius:11px; color:#fff; font-size:13px; font-weight:700; text-decoration:none; box-shadow:0 2px 7px rgba(30,64,175,.1); }
	body.catx-on .catx-mobile-shortcut:first-child{ background:#3b82f6; }
	body.catx-on .catx-mobile-shortcut:last-child{ background:#10a174; }
	body.catx-on .catx-mobile-shortcut svg{ color:#fff; flex:0 0 auto; }
	body.catx-on .catx-mobile-shortcut:first-child:active{ background:#2563eb; }
	body.catx-on .catx-mobile-shortcut:last-child:active{ background:#059669; }

	body.catx-on .catx-mobmenu-head{ display:flex; align-items:center; justify-content:space-between; flex-shrink:0; padding:15px 18px 11px; border-bottom:1px solid var(--cx-line-soft); }
	body.catx-on .catx-mobmenu-title{ font-size:16px; font-weight:700; color:var(--cx-strong); letter-spacing:-.01em; }
	body.catx-on .catx-mobmenu-close{ width:34px; height:34px; border-radius:10px; border:1px solid var(--cx-line); background:var(--cx-chip); color:var(--cx-body); display:flex; align-items:center; justify-content:center; cursor:pointer; }
	body.catx-on .catx-mobmenu-close:hover{ border-color:var(--cx-hover-line); }
	body.catx-on .catx-mobmenu-foot{ display:flex; align-items:center; justify-content:center; gap:8px; flex-shrink:0; margin:14px; padding:13px 12px; border-radius:14px; background:#FEE500; color:#191600; font-size:14px; font-weight:700; text-decoration:none; box-shadow:0 6px 16px rgba(254,229,0,.28); }
	body.catx-on .catx-mobmenu-foot svg{ stroke:#191600; }
	body.catx-on .catx-mobmenu-foot:hover{ background:#f5d800; }
}

/* 모바일 헤더 토글 아이콘: 닫힘=햄버거 / 열림=X (드로어 상단 '전체 메뉴' 헤더 제거) */
body.catx-on .catx-navtoggle-m .catx-navtoggle-close{ display:none; }
body.catx-on.catx-nav-collapsed .catx-navtoggle-m .catx-navtoggle-open{ display:none; }
body.catx-on.catx-nav-collapsed .catx-navtoggle-m .catx-navtoggle-close{ display:block; }
@media (max-width:992px){
	body.catx-on .catx-mobmenu-head{ display:none !important; }   /* '전체 메뉴' 헤더 제거 — 닫기는 상단 X 버튼으로 */
	body.catx-on #admin_wrap header.style_admin_category .nav_view_box{ padding-top:10px; }
}

/* 모바일: 드로어 열림(=catx-nav-collapsed) 상태에서도 그룹(OPS/WORK/SITE/CONF) 접힘이 동작하게.
 * (기존 접힘 규칙은 :not(.catx-nav-collapsed) 라 모바일 드로어에서 제외됐음 → 수동 접힘·관리자 기본 접힘 상태 미적용) */
@media (max-width:992px){
	body.catx-on.catx-nav-collapsed .catx-group.is-collapsed .catx-menu{ display:none !important; }
	body.catx-on.catx-nav-collapsed .catx-group.is-collapsed{ margin-bottom:6px; }
}

/* 중복 타이틀 제거: 베이스 헤더의 모바일 로고(admin9_mobile_logo)는 catx 상단바 브랜드와 중복이라 숨김 */
body.catx-on .admin9_mobile_logo{ display:none !important; }

/* 이중 스크롤 방지(모바일): base 는 html/body:overflow:hidden + .admin_main_wrap:height 고정+overflow:auto 로
 * '본문만 내부 스크롤' 구조라, 실브라우저(클래식 스크롤바)에선 컨테이너가 함께 스크롤돼 스크롤바가 2개 보인다.
 * 모바일에선 내부 고정높이 스크롤을 없애고 '문서 하나'만 스크롤하도록 강제. */
@media (max-width:992px){
	html{ overflow-y:auto !important; height:auto !important; }
	body.catx-on{ overflow-y:visible !important; height:auto !important; }
	body.catx-on #admin_wrap{ overflow:visible !important; height:auto !important; min-height:calc(100dvh - 0px) !important; }
	body.catx-on #admin_wrap .admin_main_wrap{ overflow:visible !important; height:auto !important; min-height:0 !important; top:0 !important;
		/* 기존/모노톤 모바일 헤더의 40px 규칙은 원본에서 CATX를 제외한다.
		 * 이 0 값도 유지해 이후 공통 스타일 변경으로 여백이 다시 생기는 것을 막는다. */
		margin-top:0 !important; }

	/* 예외: 지도 페이지(임장지도 등)는 '문서 스크롤' 구조를 쓸 수 없다.
	 * .map_wraper → #imjang_map 이 height:100% 사슬로 화면을 채우는데,
	 * 위 규칙의 height:auto 가 걸리면 사슬이 끊겨 지도가 30px 로 접힌다. */
	body.catx-on #admin_wrap .admin_main_wrap:has(.map_wraper){
		height:calc(100dvh - 68px) !important;	/* 68px = catx 상단바 */
		overflow:hidden !important;
		padding-top:0 !important;
	}
	/* #admin_wrap 의 margin-bottom:40px 는 본문이 짧을 때는 안 보였는데,
	 * 위에서 높이를 화면만큼 채우자 문서가 40px 더 길어져 아래에 빈 띠가
	 * 스크롤로 드러났다. 지도 페이지는 화면을 꽉 채우므로 그 여백을 없앤다. */
	body.catx-on #admin_wrap:has(.map_wraper){ margin-bottom:0 !important; }
}

/* ===== 매물관리용 추가 컴포넌트 (탭/썸네일/매물번호/고객링크/모바일3열) ===== */
/* 최근 작업 탭 — 가로 반반(50/50) 꽉 채움 */
/* 탭 = 세그먼트 컨트롤. 버튼 2개가 따로 떠 있던 형태 → 하나의 트랙 안에서 선택된 것만 pill 로 올라오게.
 * 어느 쪽이 선택됐는지 한눈에 들어오고, 묶여 있어 '전환 스위치'라는 것도 인지된다.
 * 트랙 padding 3px + 탭 padding 5px 조합으로 전체 높이는 기존(39px)과 동일하게 유지. */
/* 탭 — 선택 탭 상단에 accent 바 + 흰 배경, 비선택은 회색 배경으로 채운 형태(참고 시안).
 * 두 탭은 간격 없이 붙고 바깥 테두리로 하나의 컨트롤처럼 묶인다. 아이콘은 라벨 위에 배치. */
/* 탭은 패널 상단·좌우에 딱 붙인다: 패널 padding(16px)을 헤드 음수 마진으로 상쇄.
 * 아래 여백은 .catxi-dash .catxd-panel-head 기본값(9px)과 동일하게 유지. */
body.catx-on .catxd-panel-head:has(> .catxi-tabs){ margin:-16px -16px 9px; }
/* 패널 radius 18px - 테두리 1px = 안쪽 17px 이므로 양끝 탭 위 모서리만 맞춰 깎는다(패널 overflow 를 건드리지 않기 위함) */
body.catx-on .catxi-tabs{ display:flex; gap:0; flex:1; width:100%; border:0; border-radius:0; }
body.catx-on .catxi-tab:first-child{ border-top-left-radius:17px; }
body.catx-on .catxi-tab:last-child{ border-top-right-radius:17px; }
body.catx-on .catxi-tab{ flex:1 1 0; min-width:0; display:flex; flex-direction:row; align-items:center; justify-content:center; gap:6px; padding:8px 10px; border:0; border-top:3px solid transparent; border-radius:0; background:var(--cx-row); font-size:15px; font-weight:600; color:var(--cx-sub); cursor:pointer; font-family:inherit; letter-spacing:-.01em; transition:background .15s, color .15s, border-color .15s; }
body.catx-on .catxi-tab + .catxi-tab{ border-left:1px solid var(--cx-line); }
body.catx-on .catxi-tab > span{ max-width:100%; white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }
body.catx-on .catxi-tab svg{ display:block; flex:0 0 auto; }
body.catx-on .catxi-tab:hover{ color:var(--cx-strong); }
body.catx-on .catxi-tab.is-on{ background:var(--cx-panel); border-top-color:transparent; /* 선택 탭 상단 파란 선 제거(요청) — 높이 유지를 위해 3px 투명 테두리는 남김 */ color:var(--cx-strong); }
body.catx-on .catxi-tab.is-on:hover{ color:var(--cx-strong); }
body.catx-on .catxi-tabpane[hidden]{ display:none; }
/* 매물번호 뱃지(최근 매물 작업) */
body.catx-on .catxi-itemno{ flex-shrink:0; font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace; font-size:var(--dash-font-10_5, 10.5px); font-weight:700; color:var(--cx-sub); background:transparent; border:1px solid var(--cx-line); border-radius:6px; padding:1px 6px; }
/* TOP5 썸네일 1:1 + 이미지(실패 시 아이콘 폴백) */
body.catx-on .catxi-thumb-sq{ position:relative; width:38px; height:38px; border-radius:9px; overflow:hidden; background:var(--cx-track); border:1px solid var(--cx-line-soft); flex-shrink:0; }
body.catx-on .catxi-thumb-sq .catxi-thumb-ph{ position:absolute; inset:0; display:flex; align-items:center; justify-content:center; }
body.catx-on .catxi-thumb-sq img{ position:absolute; inset:0; width:100%; height:100%; object-fit:cover; display:block; background:var(--cx-track); }
/* 전체 고객 카드 링크 hover */
body.catx-on .catxi-cli-link{ transition:border-color .15s, background .15s; }
body.catx-on .catxi-cli-link:hover{ border-color:var(--cx-hover-line); background:var(--cx-hover-bg); }
/* 모바일: 상단 KPI 6장을 3×2 로 */
@media (max-width:700px){
	body.catx-on .catxi-kpigrid{ grid-template-columns:repeat(3,minmax(0,1fr)) !important; gap:7px; }
	body.catx-on .catxi-adtoprow{ grid-template-columns:repeat(2,minmax(0,1fr)) !important; gap:7px; }
		body.catx-on .catxi-adkpi-group{ display:contents !important; }  /* 그룹 경계 해제 → 6장이 adtoprow 2칸 그리드로 흐름(2×3) */
		body.catx-on .catxi-adtoprow > .catxd-infopanel{ grid-column:1 / -1; }
		/* [매물연동용 42 모바일] 정보패널 = 용량/만료일/잔여문자 3개 카드 한 줄 + 버튼을 각 값 아래로 */
		body.catx-on .catxi-sync .catxd-infopanel{ background:transparent !important; border:none !important; box-shadow:none !important; padding:0 !important; flex-wrap:nowrap !important; gap:7px !important; }
		body.catx-on .catxi-sync .catxd-infopanel > .catxd-info-div{ display:none !important; }
		body.catx-on .catxi-sync .catxd-infopanel > .catxd-info-cell{ flex:1 1 0 !important; min-width:0; flex-direction:column !important; align-items:center !important; justify-content:flex-start !important; gap:8px; padding:11px 6px !important; background:var(--cx-chip); border:1px solid var(--cx-line); border-radius:12px; text-align:center; }
		body.catx-on .catxi-sync .catxd-info-cell .catxd-info-text{ align-items:center !important; gap:4px; width:100%; }
		body.catx-on .catxi-sync .catxd-btn-tx{ display:inline !important; }
		body.catx-on .catxi-sync .catxd-info-btn{ width:auto !important; height:auto !important; border-radius:999px !important; padding:5px 11px !important; gap:4px; font-size:var(--dash-font-11, 11px); font-weight:600; align-self:center !important; margin:0 !important; }
		body.catx-on .catxi-sync .catxd-info-btn svg{ width:11px; height:11px; }
	body.catx-on .catxi-kpi{ padding:10px 8px; gap:5px; align-items:flex-start; border-radius:12px; }
	body.catx-on .catxi-kpi-top{ gap:6px; width:100%; }
	body.catx-on .catxi-kpi-ico{ width:22px; height:22px; border-radius:7px; }
	body.catx-on .catxi-kpi-name{ font-size:var(--dash-font-11, 11px); }
	body.catx-on .catxi-kpi-hint{ display:none; }               /* 3열 폭 부족 → 힌트 숨김(값으로 대체) */
	body.catx-on .catxi-kpi-val{ flex-wrap:wrap; row-gap:5px; width:100%; }
	body.catx-on .catxi-kpi-val b{ font-size:clamp(15px,4.4vw,19px); }
	/* 버튼(용량추가/연장신청/문자충전)은 값 아래 줄로 내림(pill 유지, 좌측정렬) */
	body.catx-on .catxi-kpi-btn{ flex:0 0 100%; max-width:max-content; margin-left:0 !important; margin-right:auto; margin-top:3px; padding:3px 7px; font-size:var(--dash-font-10, 10px); }
	/* 매물관리용 라벨 축소: '홈페이지 ' 접두어 숨김(용량/만료일), 만료일 요일 숨김 */
	body.catx-on .catxi-hpx{ display:none; }
	body.catx-on .catxi-kpi-val em.catxi-wd{ display:none; }
}

/* =========================================================================
 * [추가] 인포 아이콘 + 툴팁(홈페이지 용량/만료 안내) & 업데이트 건의 모달 테마
 * ========================================================================= */
/* ── 인포 아이콘 + 툴팁 ─────────────────────────────────────────────────── */
body.catx-on .catx-infotip{ position:relative; display:inline-flex; align-items:center; justify-content:center; width:16px; height:16px; margin-left:5px; border-radius:50%; color:var(--cx-sub2); cursor:pointer; vertical-align:middle; outline:none; flex-shrink:0; -webkit-tap-highlight-color:transparent; }
/* KPI 라벨을 14px 로 키우면서 ⓘ 아이콘이 글자 중앙보다 살짝 아래에 놓인다.
 * vertical-align:middle 은 'baseline + x-height/2' 기준인데, 한글은 baseline 위
 * cap-height 쪽에 무게가 실려 광학 중심이 더 높기 때문이다. 1px 올려 맞춘다. */
@media (min-width:701px){
	body.catx-on .catxi-item .catxi-kpigrid .catxi-kpi-name .catx-infotip{ top:-1px; }
}
body.catx-on .catx-infotip:hover, body.catx-on .catx-infotip:focus{ color:var(--cx-accent-token); }
body.catx-on .catx-infotip svg{ width:14px; height:14px; display:block; }
/* 팝업은 position:fixed 로 뷰포트 기준 배치(카드 overflow:hidden·링크 클릭에 영향받지 않음). 위치는 JS(catxTip)가 설정, 표시는 .is-open 클래스로 토글 */
body.catx-on .catx-infotip-pop{ display:none; position:fixed; top:0; left:0; z-index:40060; width:max-content; max-width:min(300px,86vw); padding:12px 14px; border-radius:12px; background:var(--cx-panel); border:1px solid var(--cx-line2); box-shadow:0 18px 48px rgba(4,8,14,.5); text-align:left; white-space:normal; cursor:default; }
body.catx-on .catx-infotip-pop.is-shown{ display:block; }
body.catx-on .catx-infotip-pop b{ display:block; margin-bottom:5px; font-size:var(--dash-font-12, 12px); font-weight:700; color:var(--cx-strong); }
body.catx-on .catx-infotip-pop span{ display:block; margin-top:4px; font-size:var(--dash-font-11_5, 11.5px); line-height:1.5; color:var(--cx-body); }


/* ── 직원(staff) 전용 대시보드 추가 컴포넌트 ─────────────────────────────── */
body.catx-on .catxi-staffkpi{ grid-template-columns:repeat(4,minmax(0,1fr)); }
body.catx-on .catxi-mgmt2{ display:grid; grid-template-columns:1fr 1fr; gap:9px; margin-top:2px; }
body.catx-on .catxi-mini{ display:flex; flex-direction:column; gap:6px; padding:11px 12px; border-radius:11px; background:var(--cx-chip); border:1px solid var(--cx-line); }
body.catx-on .catxi-mini-l{ display:flex; align-items:center; gap:6px; font-size:var(--dash-font-11_5, 11.5px); color:var(--cx-sub); }
body.catx-on .catxi-mini b{ font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace; font-size:17px; font-weight:700; color:var(--cx-strong); }
body.catx-on .catxi-dot2{ display:inline-block; width:8px; height:8px; border-radius:3px; margin-right:7px; vertical-align:middle; }
body.catx-on .catxd-staff-r1 .catxd-panel, body.catx-on .catxd-staff-r2 .catxd-panel{ min-height:0; }
/* 직원 대시보드: 1행 자연높이 + 2행(미확인문의/최근작업)이 남은 세로를 채워 하단까지 확장 */
body.catx-on .catxd-staffwrap{ min-height:calc(100vh - var(--cx-topbar-h)); min-height:calc(100dvh - var(--cx-topbar-h)); }
body.catx-on .catxd-staff-r1{ flex:0 0 auto; }
body.catx-on .catxd-staff-r2{ flex:1 1 auto; }
/* 3행(홈페이지방문현황/최근매물작업/최근고객작업)에 .catxs-body 가 들어가면서 관리자 전용
 * ".catxd-wrap:has(.catxs-body) .catxd-row3{flex:0 0 auto;...}" 규칙(특이도가 더 높음)이 같이 걸려
 * 2행이 남은 세로를 채우지 못하고 뷰포트 하단에 빈 여백이 남는다. 직원 대시보드 스코프에서만
 * 더 높은 특이도로 다시 채움(하단 여백 제거 + 전체 페이지 스크롤 최소화). */
body.catx-on .catxd-wrap.catxd-staffwrap.catxi-dash .catxd-staff-r2{ flex:1 1 auto; min-height:0; align-items:stretch; }
body.catx-on .catxd-wrap.catxd-staffwrap.catxi-dash .catxd-staff-r2 > .catxd-panel{ max-height:none; min-height:0; }
/* 홈페이지 방문 현황 차트: 패널이 늘어난 만큼 막대 차트도 같이 늘어나도록(관리자 :not(.catxi-dash) 버전과 동일 처리) */
body.catx-on .catxd-staffwrap .catxd-row3 .catxd-visit-chart{ flex:1; min-height:120px; }
body.catx-on .catxd-staffwrap .catxd-row3 .catxd-vc-bars{ flex:1; min-height:90px; }
body.catx-on .catxd-staffwrap .catxd-row3 .catxd-vc-bar{ height:100%; }
@media (max-width:1279px){ body.catx-on .catxd-staff-r1, body.catx-on .catxd-staff-r2{ grid-template-columns:repeat(2,minmax(0,1fr)); } body.catx-on .catxd-staff-r1 > section:first-child, body.catx-on .catxd-staff-r2 > section:first-child{ grid-column:1 / -1; } }
@media (max-width:760px){ body.catx-on .catxd-staff-r1, body.catx-on .catxd-staff-r2{ grid-template-columns:minmax(0,1fr); } body.catx-on .catxd-staff-r1 > section:first-child, body.catx-on .catxd-staff-r2 > section:first-child{ grid-column:auto; } }
@media (max-width:700px){ body.catx-on .catxi-staffkpi{ grid-template-columns:repeat(2,minmax(0,1fr)) !important; } }

/* ── 공지 팝업(.popup.notice_popup): 카테고리 대시보드에선 base .popup CSS(긴급팝업 조건부)가 안 실려 깨짐.
 *    다크/라이트 무관 '기존(라이트) 스타일'로 고정 복구 + 닫기 동작 위해 박스/닫기 영역 명시. ─────── */
body.catx-on .popup.notice_popup{ position:fixed !important; top:50% !important; left:50% !important; right:auto !important; transform:translate(-50%,-50%) !important; margin:0 !important; padding:0 !important; background:#fff !important; color:#333 !important; border:1px solid #ddd !important; border-radius:10px !important; box-shadow:0 10px 40px rgba(0,0,0,.28) !important; max-width:calc(100vw - 24px) !important; max-height:calc(100vh - 40px) !important; overflow:hidden !important; z-index:30055 !important; }
body.catx-on .popup.notice_popup:not([style*="display: block"]):not(.pop_on){ }
/* 글자색: 전체(*)를 #333 으로 덮으면 공지 편집기에서 준 색이 사라진다 → 기본색만 주고, 색을 직접 준 요소는 그대로 둔다. 2026-09-22 */
body.catx-on .popup.notice_popup .popup-content, body.catx-on .popup.notice_popup .pop_close{ color:#333 !important; }
body.catx-on .popup.notice_popup .popup-content *:not([style*="color"]):not(font[color]), body.catx-on .popup.notice_popup .pop_close *{ color:inherit !important; }
body.catx-on .popup.notice_popup .pop_title{ display:block !important; width:100% !important; padding:12px 40px 12px 16px !important; border-radius:10px 10px 0 0 !important; font-size:16px !important; font-weight:bold !important; text-align:left !important; background:#002266 !important; color:#fff !important; position:relative !important; box-sizing:border-box !important; }
body.catx-on .popup.notice_popup .pop_title *{ color:#fff !important; }
/* 닫기 버튼: 제목줄 X 는 둥근 투명 버튼, 하단 '닫기' 는 흰 바탕 얇은 테두리 버튼으로 단정하게. 2026-09-22 */
body.catx-on .popup.notice_popup .pop_title .btn{ position:absolute !important; top:50% !important; right:10px !important; transform:translateY(-50%) !important; display:flex !important; align-items:center !important; justify-content:center !important; width:30px !important; height:30px !important; padding:0 !important; margin:0 !important; border:0 !important; border-radius:50% !important; background:transparent !important; box-shadow:none !important; color:#fff !important; cursor:pointer !important; opacity:.85; transition:background .15s, opacity .15s; }
body.catx-on .popup.notice_popup .pop_title .btn:hover{ background:rgba(255,255,255,.16) !important; opacity:1; }
body.catx-on .popup.notice_popup .pop_title .btn i{ position:static !important; transform:none !important; width:auto !important; height:auto !important; float:none !important; font-size:18px !important; line-height:1 !important; color:#fff !important; }
body.catx-on .popup.notice_popup .popup-content{ padding:16px 18px !important; max-height:60vh !important; overflow-y:auto !important; background:#fff !important; color:#333 !important; box-sizing:border-box !important; display:block !important; float:none !important; width:100% !important; }
body.catx-on .popup.notice_popup .pop_close{ display:flow-root !important; float:none !important; height:auto !important; margin:0 !important; width:100% !important; padding:10px 14px !important; background:#f2f2f2 !important; border-top:1px solid #e5e5e5 !important; box-sizing:border-box !important; position:relative !important; }
body.catx-on .popup.notice_popup .pop_close>*{ float:left; }
/* 하단 줄: 안쪽이 float 라 줄 높이가 무너져 그 아래 흰 여백이 생기던 것 — flow-root 로 감싸고 제목·본문도 float 해제 */
body.catx-on .popup.notice_popup>.pop_title{ float:none !important; }
body.catx-on .popup.notice_popup .pop_close label{ margin:0 !important; font-weight:normal !important; font-size:14px; line-height:24px; cursor:pointer; }
body.catx-on .popup.notice_popup .pop_close label input{ margin:0 6px 0 0 !important; vertical-align:middle; }
body.catx-on .popup.notice_popup .pop_close>.btn{ float:right !important; display:inline-flex !important; align-items:center !important; height:28px !important; padding:0 14px !important; margin:0 !important; border:1px solid #d0d5dd !important; border-radius:6px !important; background:#fff !important; box-shadow:none !important; font-size:13px !important; line-height:1 !important; color:#344054 !important; cursor:pointer !important; transition:background .15s, border-color .15s; }
body.catx-on .popup.notice_popup .pop_close>.btn:hover{ background:#f5f6f8 !important; border-color:#b9c0cc !important; color:#111 !important; }

/* ════════════════════════════════════════════════════════════════════════════
 *  [매물목록 페이지] 필터 영역(.search_filter_btm) — catx 통합 + 컴팩트
 *  대상: 카테고리형(40~48, body.catx-on) 에서만. 다른 테마/페이지 무영향(body.catx-on + .search_filter_btm 스코프).
 *  필터 컨트롤 2종: (A)bootstrap-select 토글 (B)커스텀 드롭다운(.btn.btn-default.dropdown-toggle)
 *    → 공통 클래스 `.btn.dropdown-toggle` 로 둘 다 커버. + 텍스트 input.
 *  base(라이브러리)가 !important 로 font-size·height·background 강제 → override 에도 필요한 !important.
 *  열리는 패널: 커스텀은 `.dropdown-menu:is(.price_drop_box,.area_drop_box,.floor_drop_box,.type_floor_drop_box,.addfilter_drop_box,.admin_hoist_drop_box,.hoist_drop_box,.owner_drop_box,.parking_drop_box,.auction_bids_drop_box,.auction_date_drop_box,.electric_power_drop_box)`(price/area/... _drop_box), bootstrap 은 `.bootstrap-select .dropdown-menu`.
 *    (일반 `.dropdown-menu` 는 나중 로드되는 동급 규칙에 져서 타깃 복합 셀렉터로 특이도 확보)
 *  색은 --cx-* 변수 → 라이트/다크 자동 대응. 라이트 칩/입력은 순백 대신 옅은 회색으로 구분감 부여.
 * ════════════════════════════════════════════════════════════════════════════ */
/* 컨트롤(버튼 2종 + 텍스트 input) 공통 */
body.catx-on .search_filter_btm .form_box .btn.dropdown-toggle,
body.catx-on .search_filter_btm .form_box input[type="text"],
body.catx-on .search_filter_btm .form_box input.form-control{
	font-size:var(--dash-font-12, 12px) !important; height:28px !important; min-height:28px !important; line-height:18px !important;
	background: var(--cx-card) !important; color: var(--cx-body) !important;
	border:1px solid var(--cx-line2) !important; border-radius:7px !important; box-shadow:none !important;
	box-sizing:border-box !important;
}
body.catx-on .search_filter_btm .form_box .btn.dropdown-toggle{ display:inline-flex !important; align-items:center !important; padding:5px 22px 3px 10px !important; }
body.catx-on .search_filter_btm .form_box input[type="text"]{ padding:0 10px !important; }
/* bootstrap-select 래퍼가 30px·흰배경이라 28px 칩 아래로 흰색 삐짐 → 래퍼 투명+28px 로 맞춤(래퍼 배경 제거) */
body.catx-on .search_filter_btm .form_box .bootstrap-select{ background:transparent !important; height:28px !important; }
/* 라이트: 순백 대신 옅은 회색 칩으로 필터영역과 구분(지침: 지나친 흰색 지양) */
body.catx-on.catx-light .search_filter_btm .form_box .btn.dropdown-toggle,
body.catx-on.catx-light .search_filter_btm .form_box input[type="text"],
body.catx-on.catx-light .search_filter_btm .form_box input.form-control{ background:#f8fafc !important; }
/* 미선택 필터(placeholder) 텍스트 = 본문색으로 통일(커스텀 드롭다운 .btn-center 와 동일: 셀렉트박스↔버튼 폰트색 일치) */
body.catx-on .search_filter_btm .form_box .btn.dropdown-toggle.bs-placeholder{ color: var(--cx-body) !important; }
/* 캐럿 색(모든 드롭다운): 닫힘=아래화살표(border-top), 열림=위화살표(border-bottom) 둘 다 보조색 */
body.catx-on .search_filter_btm .form_box .btn.dropdown-toggle .caret{ border-top-color: var(--cx-sub) !important; border-bottom-color: var(--cx-sub) !important; }
/* 캐럿 방향을 .open 클래스 기준으로 강제 — 값 선택된 필터를 바깥클릭으로 닫으면 base 가 border-bottom 을 안 지워 ▲ 로 고정되는 버그 방지 */
body.catx-on .search_filter_btm .form_box .bootstrap-select:not(.open) > .btn.dropdown-toggle .caret{ border-top-width:4px !important; border-bottom-width:0 !important; }
body.catx-on .search_filter_btm .form_box .bootstrap-select.open > .btn.dropdown-toggle .caret{ border-top-width:0 !important; border-bottom-width:4px !important; }
/* hover / focus / open 상태 명확히 */
body.catx-on .search_filter_btm .form_box .btn.dropdown-toggle:hover,
body.catx-on .search_filter_btm .form_box input[type="text"]:hover{ border-color: var(--cx-hover-line) !important; }
body.catx-on .search_filter_btm .form_box .bootstrap-select.open > .btn.dropdown-toggle,
body.catx-on .search_filter_btm .form_box .btn.dropdown-toggle.active,
body.catx-on .search_filter_btm .form_box input[type="text"]:focus{ border-color: var(--cx-accent) !important; color: var(--cx-strong) !important; }
/* 열리는 패널(커스텀 _drop_box + bootstrap-select 메뉴) — 다크에서 흰 패널 방지 */
body.catx-on .search_filter_btm .dropdown-menu:is(.price_drop_box,.area_drop_box,.floor_drop_box,.type_floor_drop_box,.addfilter_drop_box,.admin_hoist_drop_box,.hoist_drop_box,.owner_drop_box,.parking_drop_box,.auction_bids_drop_box,.auction_date_drop_box,.electric_power_drop_box),
body.catx-on .search_filter_btm .bootstrap-select .dropdown-menu{ background: var(--cx-panel) !important; border:1px solid var(--cx-line2) !important; box-shadow: var(--cx-shadow) !important; border-radius:9px !important; }
/* 금액·면적 패널은 바깥 padding:0이고 기존 안쪽 padding이 .open 상태에만 묶여 있다. 표시 상태와 무관하게 내용 여백을 유지한다. */
body.catx-on .search_filter_btm .dropdown-menu.price_drop_box > .drop_price_box,
body.catx-on .search_filter_btm .dropdown-menu.area_drop_box > .drop_area_box{
	padding:10px !important; box-sizing:border-box !important;
}
/* 패널 내부 텍스트/라벨 */
body.catx-on .search_filter_btm .dropdown-menu:is(.price_drop_box,.area_drop_box,.floor_drop_box,.type_floor_drop_box,.addfilter_drop_box,.admin_hoist_drop_box,.hoist_drop_box,.owner_drop_box,.parking_drop_box,.auction_bids_drop_box,.auction_date_drop_box,.electric_power_drop_box) li,
body.catx-on .search_filter_btm .dropdown-menu:is(.price_drop_box,.area_drop_box,.floor_drop_box,.type_floor_drop_box,.addfilter_drop_box,.admin_hoist_drop_box,.hoist_drop_box,.owner_drop_box,.parking_drop_box,.auction_bids_drop_box,.auction_date_drop_box,.electric_power_drop_box) label,
body.catx-on .search_filter_btm .dropdown-menu:is(.price_drop_box,.area_drop_box,.floor_drop_box,.type_floor_drop_box,.addfilter_drop_box,.admin_hoist_drop_box,.hoist_drop_box,.owner_drop_box,.parking_drop_box,.auction_bids_drop_box,.auction_date_drop_box,.electric_power_drop_box) span,
body.catx-on .search_filter_btm .dropdown-menu:is(.price_drop_box,.area_drop_box,.floor_drop_box,.type_floor_drop_box,.addfilter_drop_box,.admin_hoist_drop_box,.hoist_drop_box,.owner_drop_box,.parking_drop_box,.auction_bids_drop_box,.auction_date_drop_box,.electric_power_drop_box) a,
body.catx-on .search_filter_btm .dropdown-menu:is(.price_drop_box,.area_drop_box,.floor_drop_box,.type_floor_drop_box,.addfilter_drop_box,.admin_hoist_drop_box,.hoist_drop_box,.owner_drop_box,.parking_drop_box,.auction_bids_drop_box,.auction_date_drop_box,.electric_power_drop_box) p,
body.catx-on .search_filter_btm .bootstrap-select .dropdown-menu li a{ color: var(--cx-body) !important; }
/* 패널 내부 입력(최소/최대 등) */
body.catx-on .search_filter_btm .dropdown-menu:is(.price_drop_box,.area_drop_box,.floor_drop_box,.type_floor_drop_box,.addfilter_drop_box,.admin_hoist_drop_box,.hoist_drop_box,.owner_drop_box,.parking_drop_box,.auction_bids_drop_box,.auction_date_drop_box,.electric_power_drop_box) input,
body.catx-on .search_filter_btm .dropdown-menu:is(.price_drop_box,.area_drop_box,.floor_drop_box,.type_floor_drop_box,.addfilter_drop_box,.admin_hoist_drop_box,.hoist_drop_box,.owner_drop_box,.parking_drop_box,.auction_bids_drop_box,.auction_date_drop_box,.electric_power_drop_box) .form-control{ background: var(--cx-card) !important; color: var(--cx-body) !important; border:1px solid var(--cx-line2) !important; border-radius:6px !important; height:28px !important; font-size:var(--dash-font-12, 12px) !important; box-sizing:border-box !important; }
body.catx-on.catx-light .search_filter_btm .dropdown-menu:is(.price_drop_box,.area_drop_box,.floor_drop_box,.type_floor_drop_box,.addfilter_drop_box,.admin_hoist_drop_box,.hoist_drop_box,.owner_drop_box,.parking_drop_box,.auction_bids_drop_box,.auction_date_drop_box,.electric_power_drop_box) input,
body.catx-on.catx-light .search_filter_btm .dropdown-menu:is(.price_drop_box,.area_drop_box,.floor_drop_box,.type_floor_drop_box,.addfilter_drop_box,.admin_hoist_drop_box,.hoist_drop_box,.owner_drop_box,.parking_drop_box,.auction_bids_drop_box,.auction_date_drop_box,.electric_power_drop_box) .form-control{ background:#f8fafc !important; }
/* 입력+단위(평/㎡ 등) input-group: 단위 addon(span)이 h34·흰색·#ddd 라 입력(28)과 어긋남 → 높이/테두리 catx 통일 + 조인 라운드 정리(input 좌측만, addon 우측만) */
body.catx-on .search_filter_btm .dropdown-menu:is(.price_drop_box,.area_drop_box,.floor_drop_box,.type_floor_drop_box,.addfilter_drop_box,.admin_hoist_drop_box,.hoist_drop_box,.owner_drop_box,.parking_drop_box,.auction_bids_drop_box,.auction_date_drop_box,.electric_power_drop_box) .input_span_box .form-control{ border-radius:7px 0 0 7px !important; border-right-width:0 !important; }
body.catx-on .search_filter_btm .dropdown-menu:is(.price_drop_box,.area_drop_box,.floor_drop_box,.type_floor_drop_box,.addfilter_drop_box,.admin_hoist_drop_box,.hoist_drop_box,.owner_drop_box,.parking_drop_box,.auction_bids_drop_box,.auction_date_drop_box,.electric_power_drop_box) .input_span_box > span{ height:28px !important; min-width:30px !important; font-size:var(--dash-font-12, 12px) !important; color: var(--cx-body) !important; border:1px solid var(--cx-line2) !important; border-radius:0 7px 7px 0 !important; display:inline-flex !important; align-items:center !important; justify-content:center !important; box-sizing:border-box !important; }
body.catx-on:not(.catx-light) .search_filter_btm .dropdown-menu:is(.price_drop_box,.area_drop_box,.floor_drop_box,.type_floor_drop_box,.addfilter_drop_box,.admin_hoist_drop_box,.hoist_drop_box,.owner_drop_box,.parking_drop_box,.auction_bids_drop_box,.auction_date_drop_box,.electric_power_drop_box) .input_span_box > span{ background: var(--cx-chip) !important; }
body.catx-on.catx-light .search_filter_btm .dropdown-menu:is(.price_drop_box,.area_drop_box,.floor_drop_box,.type_floor_drop_box,.addfilter_drop_box,.admin_hoist_drop_box,.hoist_drop_box,.owner_drop_box,.parking_drop_box,.auction_bids_drop_box,.auction_date_drop_box,.electric_power_drop_box) .input_span_box > span{ background:#eef2f7 !important; }
/* 전력(ELECTRIC POWER)/호이스트(HOIST) 등 min_max_box 구조 필터 팝업 — input_span_box 와 동일 스타일(깨짐 복구) */
/* min_max 필터: 바깥 래퍼의 앱 기본 패딩 제거. 금액·면적의 스크롤 내용 래퍼는 위 10px 여백을 유지한다. */
body.catx-on .search_filter_btm .dropdown-menu:is(.price_drop_box,.area_drop_box,.floor_drop_box,.type_floor_drop_box,.addfilter_drop_box,.admin_hoist_drop_box,.hoist_drop_box,.owner_drop_box,.parking_drop_box,.auction_bids_drop_box,.auction_date_drop_box,.electric_power_drop_box):is(.dropdown-menus:not(.price_drop_box,.area_drop_box),.admin_hoist_drop_box) > div,
body.catx-on .search_filter_btm .dropdown-menu:is(.price_drop_box,.area_drop_box,.floor_drop_box,.type_floor_drop_box,.addfilter_drop_box,.admin_hoist_drop_box,.hoist_drop_box,.owner_drop_box,.parking_drop_box,.auction_bids_drop_box,.auction_date_drop_box,.electric_power_drop_box):is(.dropdown-menus,.admin_hoist_drop_box) .dropdown{ padding:0 !important; margin:0 !important; }
body.catx-on .search_filter_btm .dropdown-menu:is(.price_drop_box,.area_drop_box,.floor_drop_box,.type_floor_drop_box,.addfilter_drop_box,.admin_hoist_drop_box,.hoist_drop_box,.owner_drop_box,.parking_drop_box,.auction_bids_drop_box,.auction_date_drop_box,.electric_power_drop_box) .min_max_box{ display:flex !important; flex-wrap:nowrap !important; align-items:center !important; gap:5px !important; padding:6px !important; white-space:nowrap !important; width:auto !important; }
body.catx-on .search_filter_btm .dropdown-menu:is(.price_drop_box,.area_drop_box,.floor_drop_box,.type_floor_drop_box,.addfilter_drop_box,.admin_hoist_drop_box,.hoist_drop_box,.owner_drop_box,.parking_drop_box,.auction_bids_drop_box,.auction_date_drop_box,.electric_power_drop_box) .min_max{ display:inline-flex !important; flex:none !important; align-items:center !important; margin:0 !important; border:0 !important; padding:0 !important; background:transparent !important; }
body.catx-on .search_filter_btm .dropdown-menu:is(.price_drop_box,.area_drop_box,.floor_drop_box,.type_floor_drop_box,.addfilter_drop_box,.admin_hoist_drop_box,.hoist_drop_box,.owner_drop_box,.parking_drop_box,.auction_bids_drop_box,.auction_date_drop_box,.electric_power_drop_box) .min_max .form-control{ border-radius:7px 0 0 7px !important; border-right-width:0 !important; width:58px !important; flex:none !important; }
body.catx-on .search_filter_btm .dropdown-menu:is(.price_drop_box,.area_drop_box,.floor_drop_box,.type_floor_drop_box,.addfilter_drop_box,.admin_hoist_drop_box,.hoist_drop_box,.owner_drop_box,.parking_drop_box,.auction_bids_drop_box,.auction_date_drop_box,.electric_power_drop_box) .min_max > span{ height:28px !important; min-width:30px !important; padding:0 5px !important; font-size:var(--dash-font-12, 12px) !important; color:var(--cx-body) !important; border:1px solid var(--cx-line2) !important; border-radius:0 7px 7px 0 !important; display:inline-flex !important; align-items:center !important; justify-content:center !important; box-sizing:border-box !important; flex:none !important; }
body.catx-on:not(.catx-light) .search_filter_btm .dropdown-menu:is(.price_drop_box,.area_drop_box,.floor_drop_box,.type_floor_drop_box,.addfilter_drop_box,.admin_hoist_drop_box,.hoist_drop_box,.owner_drop_box,.parking_drop_box,.auction_bids_drop_box,.auction_date_drop_box,.electric_power_drop_box) .min_max > span{ background:var(--cx-chip) !important; }
body.catx-on.catx-light .search_filter_btm .dropdown-menu:is(.price_drop_box,.area_drop_box,.floor_drop_box,.type_floor_drop_box,.addfilter_drop_box,.admin_hoist_drop_box,.hoist_drop_box,.owner_drop_box,.parking_drop_box,.auction_bids_drop_box,.auction_date_drop_box,.electric_power_drop_box) .min_max > span{ background:#eef2f7 !important; }
/* bootstrap-select 열린 메뉴 — 선택/활성 항목이 앱 규칙(.admin_item_left_box ... li.selected a:focus{background:#002060} 특이도 0,6,2)으로 남색+어두운글자라 안읽힘.
 * .bootstrap-select.btn-group + > a + :focus 로 특이도 넘겨 선택항목=accent+흰글자, 비선택 hover=catx hover-bg. (항목 텍스트가 span.text 라 .text 도 흰색) */
body.catx-on .search_filter_btm .bootstrap-select.btn-group .dropdown-menu li.selected > a,
body.catx-on .search_filter_btm .bootstrap-select.btn-group .dropdown-menu li.selected > a:hover,
body.catx-on .search_filter_btm .bootstrap-select.btn-group .dropdown-menu li.selected > a:focus,
body.catx-on .search_filter_btm .bootstrap-select.btn-group .dropdown-menu li.active > a,
body.catx-on .search_filter_btm .bootstrap-select.btn-group .dropdown-menu li.active > a:hover,
body.catx-on .search_filter_btm .bootstrap-select.btn-group .dropdown-menu li.active > a:focus{ background: var(--cx-accent) !important; color:#fff !important; }
body.catx-on .search_filter_btm .bootstrap-select.btn-group .dropdown-menu li.selected > a .text,
body.catx-on .search_filter_btm .bootstrap-select.btn-group .dropdown-menu li.active > a .text{ color:#fff !important; }
body.catx-on .search_filter_btm .bootstrap-select.btn-group .dropdown-menu li > a:hover,
body.catx-on .search_filter_btm .bootstrap-select.btn-group .dropdown-menu li > a:focus{ background: var(--cx-hover-bg) !important; color: var(--cx-strong) !important; }
body.catx-on .search_filter_btm .bootstrap-select.btn-group .dropdown-menu li > a:hover .text,
body.catx-on .search_filter_btm .bootstrap-select.btn-group .dropdown-menu li > a:hover span{ color: var(--cx-strong) !important; }

/* 필터 패널(면적/가격 등 _drop_box) 초기화 버튼(빨간 아웃라인) → catx-red 로 통일·컴팩트 */
body.catx-on .search_filter_btm .dropdown-menu:is(.price_drop_box,.area_drop_box,.floor_drop_box,.type_floor_drop_box,.addfilter_drop_box,.admin_hoist_drop_box,.hoist_drop_box,.owner_drop_box,.parking_drop_box,.auction_bids_drop_box,.auction_date_drop_box,.electric_power_drop_box) .btn_box .btn,
body.catx-on .search_filter_btm .dropdown-menu:is(.price_drop_box,.area_drop_box,.floor_drop_box,.type_floor_drop_box,.addfilter_drop_box,.admin_hoist_drop_box,.hoist_drop_box,.owner_drop_box,.parking_drop_box,.auction_bids_drop_box,.auction_date_drop_box,.electric_power_drop_box) .btn.btn_pc{ color: var(--cx-red) !important; border:1px solid var(--cx-red) !important; border-radius:6px !important; font-size:var(--dash-font-12, 12px) !important; background:transparent !important; }

/* 패널 내부 중첩 select(타입/층·주차·소유자·경매유찰 등) — 원래 native look(h33·#ddd·radius5·13px)이라 옆 입력(28)과 어긋남 → catx 통일 */
body.catx-on .search_filter_btm .dropdown-menu:is(.price_drop_box,.area_drop_box,.floor_drop_box,.type_floor_drop_box,.addfilter_drop_box,.admin_hoist_drop_box,.hoist_drop_box,.owner_drop_box,.parking_drop_box,.auction_bids_drop_box,.auction_date_drop_box,.electric_power_drop_box) select{ height:28px !important; min-height:28px !important; font-size:var(--dash-font-12, 12px) !important; line-height:1 !important; color: var(--cx-body) !important; background: var(--cx-card) !important; border:1px solid var(--cx-line2) !important; border-radius:6px !important; box-sizing:border-box !important; padding:0 6px !important; }
/* 라이트 select 배경 #f8fafc(입력칸과 통일) — parking/owner 는 앱 흰배경 규칙(...admin_item_left_box .PANEL_drop_box ... select, 0,7,2)이 있어 box경로 포함 0,7,3 으로 이김 */
body.catx-on.catx-light .search_filter_btm .form_box table .admin_item_left_box .dropdown-menu:is(.price_drop_box,.area_drop_box,.floor_drop_box,.type_floor_drop_box,.addfilter_drop_box,.admin_hoist_drop_box,.hoist_drop_box,.owner_drop_box,.parking_drop_box,.auction_bids_drop_box,.auction_date_drop_box,.electric_power_drop_box) select,
body.catx-on.catx-light .search_filter_btm .form_box table .admin_item_right_box .dropdown-menu:is(.price_drop_box,.area_drop_box,.floor_drop_box,.type_floor_drop_box,.addfilter_drop_box,.admin_hoist_drop_box,.hoist_drop_box,.owner_drop_box,.parking_drop_box,.auction_bids_drop_box,.auction_date_drop_box,.electric_power_drop_box) select{ background:#f8fafc !important; }

/* ════════════════════════════════════════════════════════════════════════════
 *  [매물목록 페이지] 툴바(.admin_itemList .item_header_pc) — 매물개수/정렬/개수/검색/등록 catx 통합
 *  대상: 카테고리형(40~48, body.catx-on) 에서만. .item_header_pc 스코프라 테이블 행 버튼엔 무영향.
 *  중립 컨트롤 배경은 base 가 투명(다크)/흰색을 강제 → 라이트 `.catx-light`(2클래스)·다크 `:not(.catx-light)`(2클래스) 각각으로 이김.
 *  검색 input-group 은 조인 유지 위해 input radius 는 안 건드림(단독 드롭다운/셀렉트만 radius).
 * ════════════════════════════════════════════════════════════════════════════ */
body.catx-on .admin_itemList .item_header_pc .btn_dropdown,
body.catx-on .admin_itemList .item_header_pc select.form-control,
body.catx-on .admin_itemList .item_header_pc input[type="text"].form-control{
	font-size:13px !important; height:32px !important; line-height:20px !important;
	color: var(--cx-body) !important; border:1px solid var(--cx-line2) !important; box-shadow:none !important; box-sizing:border-box !important;
}
body.catx-on.catx-light .admin_itemList .item_header_pc .btn_dropdown,
body.catx-on.catx-light .admin_itemList .item_header_pc select.form-control{ background:#f8fafc !important; }
body.catx-on:not(.catx-light) .admin_itemList .item_header_pc .btn_dropdown,
body.catx-on:not(.catx-light) .admin_itemList .item_header_pc select.form-control{ background: var(--cx-card) !important; }
/* 키워드 입력칸: 라이트 옅은회색(#f8fafc, 필터/툴바와 통일)·다크 어두운면 */
body.catx-on:not(.catx-light) .admin_itemList .item_header_pc input[type="text"].form-control{ background: var(--cx-card) !important; }
body.catx-on.catx-light .admin_itemList .item_header_pc input[type="text"].form-control{ background:#f8fafc !important; }
/* 단독 드롭다운/셀렉트만 라운드(검색 input-group 조인 유지) */
body.catx-on .admin_itemList .item_header_pc .btn_dropdown,
body.catx-on .admin_itemList .item_header_pc select.form-control{ border-radius:7px !important; }
/* 검색버튼(파랑)·매물등록 → catx accent, 컴팩트 */
body.catx-on .admin_itemList .item_header_pc .btn_search,
body.catx-on .admin_itemList .item_header_pc .insert_btn{ background: var(--cx-accent) !important; border-color: var(--cx-accent) !important; height:32px !important; }
body.catx-on .admin_itemList .item_header_pc .insert_btn{ border-radius:7px !important; font-size:13px !important; }
/* 매물등록 버튼 폭 축소 → [엑셀|매물등록] 그룹 폭을 위 '필터 접기'(115px)와 동일하게. inline-flex+중앙정렬로 문구 세로중앙 맞춤 */
body.catx-on .admin_itemList .item_header_pc .insert_btn{ width:78px !important; min-width:78px !important; padding:0 !important; display:inline-flex !important; align-items:center !important; justify-content:center !important; gap:4px !important; }
/* 매물 개수 badge → accent 강조 + 사이즈/라운드 통일(구파랑 테두리 제거) */
body.catx-on .admin_itemList .item_header_pc .item_num.badge{ background: var(--cx-accent) !important; height:32px !important; border-radius:7px !important; border:0 !important; font-size:13px !important; font-weight:600 !important; display:inline-flex !important; align-items:center !important; box-sizing:border-box !important; }
/* 숫자(.all_cnt)만 더 크고 진하게 강조 — 이미지 참고(사용자 요청). "매물 175개" 형태(콜론 제거는 header JS) */
body.catx-on .admin_itemList .item_header_pc .item_num.badge .all_cnt{ font-size:16px !important; font-weight:800 !important; margin:0 1px 0 2px !important; letter-spacing:.2px !important; }
/* 정렬 드롭다운(.align_dropdown) 패널 catx 스타일 — 기본 부트스트랩(각진·회색·중앙정렬) → 라운드 패널/좌정렬/accent 선택(사용자 요청) */
body.catx-on .admin_itemList .align_dropdown .dropdown-menu{ background: var(--cx-panel) !important; border:1px solid var(--cx-line2) !important; border-radius:10px !important; box-shadow: var(--cx-shadow) !important; padding:5px !important; margin-top:5px !important; min-width:100px !important; }
body.catx-on.catx-light .admin_itemList .align_dropdown .dropdown-menu{ background:#fff !important; }
/* li 구분선(앱 기본 border-bottom:#ddd) 제거(사용자 요청) */
body.catx-on .admin_itemList .align_dropdown .dropdown-menu > li{ border:0 !important; }
/* 공통 스타일(display 미지정 → 숨김항목 '랜덤순'(.btn_random, inline display:none) 유지) */
body.catx-on .admin_itemList .align_dropdown .dropdown-menu > li > label.btn_align{ padding:7px 11px !important; margin:1px 0 !important; border-radius:7px !important; font-size:13px !important; font-weight:500 !important; color: var(--cx-body) !important; text-align:left !important; border:0 !important; background:transparent !important; cursor:pointer !important; box-shadow:none !important; transition: background .12s ease, color .12s ease !important; }
/* 보이는 항목만 flex(텍스트 좌 + 정렬화살표 우). 랜덤순 제외해 노출 회귀 방지 */
body.catx-on .admin_itemList .align_dropdown .dropdown-menu > li > label.btn_align:not(.btn_random){ display:flex !important; align-items:center !important; justify-content:space-between !important; gap:8px !important; }
body.catx-on .admin_itemList .align_dropdown .dropdown-menu > li > label.btn_align input[type="radio"]{ display:none !important; }
body.catx-on .admin_itemList .align_dropdown .dropdown-menu > li > label.btn_align:hover{ background: var(--cx-hover-bg) !important; color: var(--cx-strong) !important; }
body.catx-on .admin_itemList .align_dropdown .dropdown-menu > li > label.btn_align.active{ background: var(--cx-accent) !important; color:#fff !important; font-weight:600 !important; }
/* 개수(30개씩보기) native select#offset → bootstrap-select 변환(header JS) 후 정렬 드롭다운과 동일 catx 패널 스타일.
 * (네이티브 select 열림목록은 OS 렌더라 CSS 불가 → 변환. 값/change 는 bootstrap-select 가 native 로 전달) */
body.catx-on .admin_itemList .item_header_pc .bootstrap-select{ width:112px !important; }
body.catx-on .admin_itemList .item_header_pc .bootstrap-select > .dropdown-toggle.btn{ width:100% !important; height:32px !important; border-radius:7px !important; border:1px solid var(--cx-line2) !important; color: var(--cx-strong) !important; font-size:13px !important; box-shadow:none !important; display:inline-flex !important; align-items:center !important; padding:0 26px 0 11px !important; }
body.catx-on.catx-light .admin_itemList .item_header_pc .bootstrap-select > .dropdown-toggle.btn{ background:#f8fafc !important; }
body.catx-on:not(.catx-light) .admin_itemList .item_header_pc .bootstrap-select > .dropdown-toggle.btn{ background: var(--cx-card) !important; }
body.catx-on .admin_itemList .item_header_pc .bootstrap-select > .dropdown-toggle .filter-option{ position:static !important; overflow:visible !important; width:auto !important; }
body.catx-on .admin_itemList .item_header_pc .bootstrap-select > .dropdown-toggle .caret{ border-top-color: var(--cx-sub) !important; }
body.catx-on .admin_itemList .item_header_pc .bootstrap-select .dropdown-menu{ background: var(--cx-panel) !important; border:1px solid var(--cx-line2) !important; border-radius:10px !important; box-shadow: var(--cx-shadow) !important; padding:5px !important; margin-top:5px !important; min-width:112px !important; }
/* [버그] 내부스크롤용 overflow:hidden(admin_itemList)이 위로 열리는(dropup) 메뉴를 통째로 잘라 '클릭해도 안 열림'처럼 보임
 * → 툴바는 화면 상단이라 아래 공간 충분하므로, bootstrap-select 의 dropup 을 무시하고 항상 아래로 강제(가시영역 유지) */
body.catx-on .admin_itemList .item_header_pc .bootstrap-select.dropup > .dropdown-menu,
body.catx-on .admin_itemList .item_header_pc .bootstrap-select > .dropdown-menu{ top:100% !important; bottom:auto !important; }
body.catx-on.catx-light .admin_itemList .item_header_pc .bootstrap-select .dropdown-menu{ background:#fff !important; }
/* [버그] bootstrap-select 은 .dropdown-menu(외곽) 안에 .dropdown-menu.inner(내부 ul)가 있어 둘 다 패널스타일이 먹어 '테두리 2개' → 내부 ul 은 리셋(외곽만 카드) */
body.catx-on .admin_itemList .item_header_pc .bootstrap-select .dropdown-menu.inner{ border:0 !important; border-radius:0 !important; box-shadow:none !important; background:transparent !important; padding:0 !important; margin:0 !important; min-width:0 !important; }
body.catx-on .admin_itemList .item_header_pc .bootstrap-select .dropdown-menu li{ border:0 !important; }
body.catx-on .admin_itemList .item_header_pc .bootstrap-select .dropdown-menu li a{ display:flex !important; align-items:center !important; line-height:1.3 !important; min-height:0 !important; padding:7px 11px !important; margin:1px 0 !important; border-radius:7px !important; font-size:13px !important; color: var(--cx-body) !important; }
body.catx-on .admin_itemList .item_header_pc .bootstrap-select .dropdown-menu li a:hover,
body.catx-on .admin_itemList .item_header_pc .bootstrap-select .dropdown-menu li a:focus{ background: var(--cx-hover-bg) !important; color: var(--cx-strong) !important; }
body.catx-on .admin_itemList .item_header_pc .bootstrap-select .dropdown-menu li.selected a{ background: var(--cx-accent) !important; color:#fff !important; font-weight:600 !important; }
body.catx-on .admin_itemList .item_header_pc .bootstrap-select .dropdown-menu li a .check-mark{ display:none !important; }
/* 선택기능 드롭다운 패널(.catx-bulkmenu, header JS 가 마커+아이콘+구분선 주입) — 정렬/개수와 동일 catx 카드 + 아이콘항목(사용자: 이미지처럼) */
body.catx-on .item_header_pc .dropdown-menu.catx-bulkmenu{ background: var(--cx-panel) !important; border:1px solid var(--cx-line2) !important; border-radius:10px !important; box-shadow: var(--cx-shadow) !important; padding:5px !important; margin-top:5px !important; min-width:186px !important; max-height:calc(100vh - 130px) !important; overflow-y:auto !important; overflow-x:hidden !important; }
body.catx-on.catx-light .item_header_pc .dropdown-menu.catx-bulkmenu{ background:#fff !important; }
body.catx-on .item_header_pc .dropdown-menu.catx-bulkmenu > li{ border:0 !important; }
body.catx-on .item_header_pc .dropdown-menu.catx-bulkmenu a[role="menuitem"]{ display:flex !important; align-items:center !important; gap:9px !important; padding:8px 11px !important; margin:1px 0 !important; border-radius:7px !important; font-size:13px !important; color: var(--cx-body) !important; line-height:1.3 !important; text-decoration:none !important; white-space:nowrap !important; }
body.catx-on .item_header_pc .dropdown-menu.catx-bulkmenu a[role="menuitem"] .catx-bulk-ic{ display:inline-flex !important; align-items:center !important; color: var(--cx-sub) !important; flex:0 0 auto !important; }
body.catx-on .item_header_pc .dropdown-menu.catx-bulkmenu a[role="menuitem"]:hover{ background: var(--cx-hover-bg) !important; color: var(--cx-strong) !important; }
body.catx-on .item_header_pc .dropdown-menu.catx-bulkmenu a[role="menuitem"]:hover .catx-bulk-ic{ color: var(--cx-strong) !important; }
body.catx-on .item_header_pc .dropdown-menu.catx-bulkmenu a.catx-bulk-danger{ color: var(--cx-red) !important; }
body.catx-on .item_header_pc .dropdown-menu.catx-bulkmenu a.catx-bulk-danger .catx-bulk-ic{ color: var(--cx-red) !important; }
body.catx-on .item_header_pc .dropdown-menu.catx-bulkmenu a.catx-bulk-danger:hover{ background:color-mix(in oklab, var(--cx-red) 12%, transparent) !important; color: var(--cx-red) !important; }
body.catx-on .item_header_pc .dropdown-menu.catx-bulkmenu .catx-bulkdiv{ height:1px !important; background: var(--cx-line2) !important; margin:5px 6px !important; }
/* 툴바 액션버튼 사이즈/색톤 통일 --------------------------------- */
/* 검색 input-group: 파랑 검색버튼 우측 조인 라운드 */
body.catx-on .admin_itemList .item_header_pc .btn_search{ border-radius:0 7px 7px 0 !important; }
/* 검색 input 좌측 조인 라운드 */
body.catx-on .admin_itemList .item_header_pc input[type="text"].form-control{ border-radius:7px 0 0 7px !important; }
/* 빨강 검색버튼(자체관리번호) → catx-red, h32 통일 */
body.catx-on .admin_itemList .item_header_pc .btn.btn-default{ height:32px !important; border-radius:0 7px 7px 0 !important; background: #d6336c !important; border-color: #d6336c !important; color:#fff !important; }
/* 엑셀 버튼 → 초록 아이콘 + catx 칩, h32/라운드7 통일 */
body.catx-on .admin_itemList .item_header_pc .btn_excel{ height:32px !important; border-radius:7px !important; color: var(--cx-green) !important; border:1px solid var(--cx-line2) !important; display:inline-flex !important; align-items:center !important; box-sizing:border-box !important; }
body.catx-on.catx-light .admin_itemList .item_header_pc .btn_excel{ background:#f8fafc !important; }
body.catx-on:not(.catx-light) .admin_itemList .item_header_pc .btn_excel{ background: var(--cx-card) !important; }
/* 필터영역 우측 검색/새로고침 버튼 → catx 색톤+라운드(높이 30 원본 유지) */
body.catx-on .search_filter_btm .right_btn_01{ border-radius:7px !important; border:1px solid var(--cx-line2) !important; color: var(--cx-body) !important; box-sizing:border-box !important; }
body.catx-on .search_filter_btm .right_btn_02{ border-radius:7px !important; border:1px solid #d6336c !important; color: #d6336c !important; background:transparent !important; box-sizing:border-box !important; }
body.catx-on.catx-light .search_filter_btm .right_btn_01{ background:#f8fafc !important; }
body.catx-on:not(.catx-light) .search_filter_btm .right_btn_01{ background: var(--cx-card) !important; }
body.catx-on .search_filter_btm .right_btn_02 .fa-refresh{ color: #d6336c !important; }
/* 아이콘 버튼(검색 파랑/빨강·엑셀) 정사각형 32x32 통일 — 가로가 세로보다 넓던 문제 해소 */
body.catx-on .admin_itemList .item_header_pc .btn_search,
body.catx-on .admin_itemList .item_header_pc .btn.btn-default,
body.catx-on .admin_itemList .item_header_pc .btn_excel{ width:32px !important; min-width:32px !important; height:32px !important; padding:0 !important; box-sizing:border-box !important; display:inline-flex !important; align-items:center !important; justify-content:center !important; }
/* hover 효과: 채워진 버튼(파랑/빨강/등록)은 살짝 어둡게, 아웃라인 버튼은 강조색/옅은 배경 */
body.catx-on .admin_itemList .item_header_pc .btn_search,
body.catx-on .admin_itemList .item_header_pc .btn.btn-default,
body.catx-on .admin_itemList .item_header_pc .insert_btn,
body.catx-on .admin_itemList .item_header_pc .btn_excel,
body.catx-on .search_filter_btm .right_btn_01,
body.catx-on .search_filter_btm .right_btn_02{ transition: filter .12s ease, background .12s ease, border-color .12s ease, color .12s ease !important; }
/* 채워진 버튼 hover — 라이트=어둡게, 다크=밝게+글로우 (각 테마서 변화가 명확히 보이도록. 다크서 어둡게하면 배경에 묻혀 안보임) */
body.catx-on.catx-light .admin_itemList .item_header_pc .btn_search:hover,
body.catx-on.catx-light .admin_itemList .item_header_pc .btn.btn-default:hover,
body.catx-on.catx-light .admin_itemList .item_header_pc .insert_btn:hover{ filter:brightness(0.9) !important; box-shadow:0 2px 6px rgba(0,0,0,.2) !important; }
body.catx-on:not(.catx-light) .admin_itemList .item_header_pc .btn_search:hover,
body.catx-on:not(.catx-light) .admin_itemList .item_header_pc .btn.btn-default:hover,
body.catx-on:not(.catx-light) .admin_itemList .item_header_pc .insert_btn:hover{ filter:brightness(1.15) !important; box-shadow:0 0 0 2px rgba(120,170,255,.35) !important; }
/* 매물등록 버튼만 hover 시 파랑 채움·흰 글자(앱 흰bg/파랑글자 규칙 무시). btn_search/btn-default 는 위 filter 만 유지(색 변화 없음). */
body.catx-on .admin_itemList .item_header_pc .insert_btn:hover{ background:var(--cx-accent) !important; border-color:var(--cx-accent) !important; color:#fff !important; }
body.catx-on .admin_itemList .item_header_pc .insert_btn:hover i{ color:#fff !important; }
body.catx-on .admin_itemList .item_header_pc .btn_excel:hover{ border-color: var(--cx-accent) !important; color: var(--cx-accent) !important; }
body.catx-on .search_filter_btm .right_btn_01:hover{ background: var(--cx-accent) !important; border-color: var(--cx-accent) !important; color:#fff !important; }
body.catx-on .search_filter_btm .right_btn_01:hover i{ color:#fff !important; }
body.catx-on .search_filter_btm .right_btn_02:hover{ background: var(--cx-hover-bg) !important; }
/* 표시·광고 필수정보 누락(#required_missing_btn) → 경고 강조 분홍색 계열 (라이트: 옅은분홍칩+마젠타핑크 글자/아이콘, 다크: 밝은핑크) */
body.catx-on .admin_itemList .item_header_pc #required_missing_btn{ color:#a12b53 !important; border:1px solid #e5bbc9 !important; }
body.catx-on.catx-light .admin_itemList .item_header_pc #required_missing_btn{ background:#fff !important; }
body.catx-on:not(.catx-light) .admin_itemList .item_header_pc #required_missing_btn{ background: rgba(255,120,170,0.12) !important; color:#ff9ec4 !important; border-color:#ff9ec4 !important; }
body.catx-on .admin_itemList .item_header_pc #required_missing_btn i{ color:inherit !important; }
body.catx-on .admin_itemList .item_header_pc #required_missing_btn:hover{ filter:brightness(0.97) !important; border-color:#d6336c !important; }
/* 활성화(.on): 배경 분홍 + 글자 흰색(요청). 라이트/다크 동일 톤. */
body.catx-on .admin_itemList .item_header_pc #required_missing_btn.on{ background:#d6336c !important; border-color:#d6336c !important; color:#fff !important; }
/* 클릭 시 체크박스 포커스로 버튼 바깥에 테두리가 한 번 더 생기는 효과 제거(요청, catx 한정) */
body.catx-on .admin_itemList .item_header_pc #required_missing_btn:focus-within{ outline:none !important; outline-offset:0 !important; }
/* 매물등록 불가(용량 초과) 버튼 색상은 전 대시보드 공통이라 admin_item_v2.php 마크업 인라인 스타일에서 적용(여기서는 게이팅하지 않음). */
/* [catx 한정] 용량초과 버튼 크기/라디우스를 다른 툴바 버튼(32px·radius7)과 통일 + 눈에 띄게 깜빡이는 효과. */
@keyframes cxBlockedBlink{ 0%,100%{ opacity:1; box-shadow:0 0 0 0 rgba(214,51,108,.55); } 50%{ opacity:.6; box-shadow:0 0 7px 2px rgba(214,51,108,.6); } }
body.catx-on .admin_itemList .item_header_pc .item_header_R a.cx-item-blocked{ height:32px !important; line-height:30px !important; padding:0 12px !important; border-radius:7px !important; box-sizing:border-box !important; display:inline-flex !important; align-items:center !important; justify-content:center !important; animation:cxBlockedBlink 1.2s ease-in-out infinite; }
body.catx-on .admin_itemList .item_header_pc .item_header_R a.cx-item-blocked:hover{ animation-play-state:paused; }
@media (prefers-reduced-motion: reduce){ body.catx-on .admin_itemList .item_header_pc .item_header_R a.cx-item-blocked{ animation:none; } }
/* [catx 한정·PC] 문구 앞 경고 아이콘 노출 */
body.catx-on .admin_itemList .item_header_pc .item_header_R a.cx-item-blocked .cx-blocked-ico{ display:inline-block !important; margin-right:6px; font-size:var(--dash-font-12, 12px); }
body.catx-on .admin_itemList .item_header_pc #required_missing_btn.on i{ color:#fff !important; }
body.catx-on .admin_itemList .item_header_pc #required_missing_btn.on input[type="checkbox"]{ accent-color:#fff !important; }
body.catx-on .admin_itemList .item_header_pc #required_missing_btn.on:hover{ filter:brightness(0.96) !important; border-color:#c23364 !important; }
/* 활성화 시 옆에 매물 개수 배지 노출(비활성/비-catx 는 숨김) */
body.catx-on .admin_itemList .item_header_pc #required_missing_btn .rq_count{ display:none; }
body.catx-on .admin_itemList .item_header_pc #required_missing_btn.on .rq_count{ display:inline-flex !important; align-items:center; justify-content:center; min-width:18px; height:18px; padding:0 6px; margin-left:2px; border-radius:9px; background:#fff; color:#c23364; font-size:var(--dash-font-11, 11px); font-weight:700; line-height:1; }
/* 아이콘만 보이는 축소(compact) 상태에서는 개수 배지 숨김(요청) */
body.catx-on .admin_itemList .item_header_pc #required_missing_btn.rq_compact .rq_count{ display:none !important; }
@media (max-width:1000px){ body.catx-on .admin_itemList .item_header_pc #required_missing_btn .rq_count{ display:none !important; } }

/* ── 다크모드 필터 패널/버튼 상태 보정 ─────────────────────────────── */
/* 패널 섹션 제목(h4: 보증금/월세/FLOOR 등)이 rgb(16,35,69) 남색 고정이라 다크서 안보임 → catx-strong */
body.catx-on .search_filter_btm .dropdown-menu:is(.price_drop_box,.area_drop_box,.floor_drop_box,.type_floor_drop_box,.addfilter_drop_box,.admin_hoist_drop_box,.hoist_drop_box,.owner_drop_box,.parking_drop_box,.auction_bids_drop_box,.auction_date_drop_box,.electric_power_drop_box) h1,
body.catx-on .search_filter_btm .dropdown-menu:is(.price_drop_box,.area_drop_box,.floor_drop_box,.type_floor_drop_box,.addfilter_drop_box,.admin_hoist_drop_box,.hoist_drop_box,.owner_drop_box,.parking_drop_box,.auction_bids_drop_box,.auction_date_drop_box,.electric_power_drop_box) h2,
body.catx-on .search_filter_btm .dropdown-menu:is(.price_drop_box,.area_drop_box,.floor_drop_box,.type_floor_drop_box,.addfilter_drop_box,.admin_hoist_drop_box,.hoist_drop_box,.owner_drop_box,.parking_drop_box,.auction_bids_drop_box,.auction_date_drop_box,.electric_power_drop_box) h3,
body.catx-on .search_filter_btm .dropdown-menu:is(.price_drop_box,.area_drop_box,.floor_drop_box,.type_floor_drop_box,.addfilter_drop_box,.admin_hoist_drop_box,.hoist_drop_box,.owner_drop_box,.parking_drop_box,.auction_bids_drop_box,.auction_date_drop_box,.electric_power_drop_box) h4,
body.catx-on .search_filter_btm .dropdown-menu:is(.price_drop_box,.area_drop_box,.floor_drop_box,.type_floor_drop_box,.addfilter_drop_box,.admin_hoist_drop_box,.hoist_drop_box,.owner_drop_box,.parking_drop_box,.auction_bids_drop_box,.auction_date_drop_box,.electric_power_drop_box) h5,
body.catx-on .search_filter_btm .dropdown-menu:is(.price_drop_box,.area_drop_box,.floor_drop_box,.type_floor_drop_box,.addfilter_drop_box,.admin_hoist_drop_box,.hoist_drop_box,.owner_drop_box,.parking_drop_box,.auction_bids_drop_box,.auction_date_drop_box,.electric_power_drop_box) h6{ color: var(--cx-strong) !important; }
/* input_span_box 조인 라운드: 입력=좌측7·우직각·우테두리제거, 단위addon=우측7 (floor_input_box 등 .form-control 아닌 input 포함). select 단독=7 */
body.catx-on .search_filter_btm .dropdown-menu:is(.price_drop_box,.area_drop_box,.floor_drop_box,.type_floor_drop_box,.addfilter_drop_box,.admin_hoist_drop_box,.hoist_drop_box,.owner_drop_box,.parking_drop_box,.auction_bids_drop_box,.auction_date_drop_box,.electric_power_drop_box) .input_span_box input,
body.catx-on .search_filter_btm .dropdown-menu:is(.price_drop_box,.area_drop_box,.floor_drop_box,.type_floor_drop_box,.addfilter_drop_box,.admin_hoist_drop_box,.hoist_drop_box,.owner_drop_box,.parking_drop_box,.auction_bids_drop_box,.auction_date_drop_box,.electric_power_drop_box) .input_span_box .form-control{ border-radius:7px 0 0 7px !important; border-right-width:0 !important; }
body.catx-on .search_filter_btm .dropdown-menu:is(.price_drop_box,.area_drop_box,.floor_drop_box,.type_floor_drop_box,.addfilter_drop_box,.admin_hoist_drop_box,.hoist_drop_box,.owner_drop_box,.parking_drop_box,.auction_bids_drop_box,.auction_date_drop_box,.electric_power_drop_box) .input_span_box > span{ border-radius:0 7px 7px 0 !important; }

/* 소유자 필터: 고객그룹/고객명 높이와 정렬 통일. 고객명은 단위가 없는 독립 입력칸이다. */
body.catx-on .search_filter_btm .owner_drop_box .dropdown_owner_con > div{ display:flex !important; align-items:center !important; gap:6px; width:100%; min-width:0; }
body.catx-on .search_filter_btm .owner_drop_box .dropdown_owner_con > div > .dropdown{ flex:0 1 88px; min-width:0; margin:0 !important; }
body.catx-on .search_filter_btm .owner_drop_box .dropdown_owner_con .input_span_box{ flex:1 1 110px !important; min-width:0 !important; width:auto !important; margin:0 !important; float:none !important; }
body.catx-on .search_filter_btm .owner_drop_box .dropdown_owner_con select,
body.catx-on .search_filter_btm .owner_drop_box .dropdown_owner_con .input_span_box > input.search_customer{ display:block; width:100% !important; min-width:0 !important; height:28px !important; line-height:normal !important; margin:0 !important; box-sizing:border-box !important; border-width:1px !important; border-style:solid !important; border-radius:7px !important; }
@media (min-width:768px){
  body.catx-on #admin_wrap .search_filter_btm .dropdown-menu.owner_drop_box{ width:240px !important; min-width:240px !important; padding:10px !important; box-sizing:border-box !important; }
  body.catx-on #admin_wrap .search_filter_btm .owner_drop_box .dropdown_search,
  body.catx-on #admin_wrap .search_filter_btm .owner_drop_box .type_sub_view,
  body.catx-on #admin_wrap .search_filter_btm .owner_drop_box .dropdown_owner_con{ width:100% !important; min-width:0 !important; box-sizing:border-box !important; }
  body.catx-on #admin_wrap .search_filter_btm .owner_drop_box .dropdown_owner_con > div > .dropdown{ flex:0 0 88px !important; width:88px !important; min-width:88px !important; }
  body.catx-on #admin_wrap .search_filter_btm .owner_drop_box .dropdown_owner_con .input_span_box{ flex:1 0 110px !important; min-width:110px !important; }
}
body.catx-on .search_filter_btm .dropdown-menu:is(.price_drop_box,.area_drop_box,.floor_drop_box,.type_floor_drop_box,.addfilter_drop_box,.admin_hoist_drop_box,.hoist_drop_box,.owner_drop_box,.parking_drop_box,.auction_bids_drop_box,.auction_date_drop_box,.electric_power_drop_box) select{ border-radius:7px !important; }
/* Kw/톤 등 .min_max 단위 addon(span) — app 이 #efefef(밝은회색) 강제라 다크서 밝은글자와 저대비 → catx 칩+입력 조인(h28) */
body.catx-on .search_filter_btm .dropdown-menu:is(.price_drop_box,.area_drop_box,.floor_drop_box,.type_floor_drop_box,.addfilter_drop_box,.admin_hoist_drop_box,.hoist_drop_box,.owner_drop_box,.parking_drop_box,.auction_bids_drop_box,.auction_date_drop_box,.electric_power_drop_box) .min_max input{ border-radius:7px 0 0 7px !important; border-right-width:0 !important; }
body.catx-on .search_filter_btm .dropdown-menu:is(.price_drop_box,.area_drop_box,.floor_drop_box,.type_floor_drop_box,.addfilter_drop_box,.admin_hoist_drop_box,.hoist_drop_box,.owner_drop_box,.parking_drop_box,.auction_bids_drop_box,.auction_date_drop_box,.electric_power_drop_box) .min_max input + span{ height:28px !important; min-width:34px !important; font-size:var(--dash-font-12, 12px) !important; color: var(--cx-body) !important; border:1px solid var(--cx-line2) !important; border-radius:0 7px 7px 0 !important; box-sizing:border-box !important; display:inline-flex !important; align-items:center !important; justify-content:center !important; }
body.catx-on:not(.catx-light) .search_filter_btm .dropdown-menu:is(.price_drop_box,.area_drop_box,.floor_drop_box,.type_floor_drop_box,.addfilter_drop_box,.admin_hoist_drop_box,.hoist_drop_box,.owner_drop_box,.parking_drop_box,.auction_bids_drop_box,.auction_date_drop_box,.electric_power_drop_box) .min_max input + span{ background: var(--cx-chip) !important; }
body.catx-on.catx-light .search_filter_btm .dropdown-menu:is(.price_drop_box,.area_drop_box,.floor_drop_box,.type_floor_drop_box,.addfilter_drop_box,.admin_hoist_drop_box,.hoist_drop_box,.owner_drop_box,.parking_drop_box,.auction_bids_drop_box,.auction_date_drop_box,.electric_power_drop_box) .min_max input + span{ background:#eef2f7 !important; }
/* 필터/툴바 드롭다운 hover: 배경 옅게 + 문구·화살표 밝게 (기존엔 테두리만 변해 hover 체감 약함) */
body.catx-on .search_filter_btm .form_box .btn.dropdown-toggle:hover{ background: var(--cx-hover-bg) !important; color: var(--cx-strong) !important; border-color: var(--cx-hover-line) !important; }
body.catx-on .search_filter_btm .form_box .btn.dropdown-toggle:hover .caret{ border-top-color: var(--cx-strong) !important; border-bottom-color: var(--cx-strong) !important; }
body.catx-on .admin_itemList .item_header_pc .btn_dropdown{ transition: background .12s ease, color .12s ease, border-color .12s ease !important; }
body.catx-on .admin_itemList .item_header_pc .btn_dropdown:hover{ background: var(--cx-hover-bg) !important; color: var(--cx-strong) !important; border-color: var(--cx-hover-line) !important; }

/* ── 선택/입력된 필터 강조(파랑) ──────────────────────────────────────
 * bootstrap-select: 값 선택 시 .bs-placeholder 제거됨 → :not(.bs-placeholder)
 * 텍스트 입력칸: :not(:placeholder-shown)
 * 커스텀 range 드롭다운(가가/면적/FLOOR/주차/전력/HOIST/경매): 클래스 마커가 없어
 *   admin_header_category.php 의 catx-gated JS 가 값 있을 때 .cx-filter-active 부여(다른 스타일 무해)
 * ──────────────────────────────────────────────────────────────────── */
/* 강조색 변수(테두리/글자/배경 분리): 라이트=밝은 파랑 아웃라인, 다크=슬레이트 채움(원격지원 버튼 톤 — 사용자 선택) */
body.catx-on{ --cx-filter-bd: var(--cx-accent); --cx-filter-tx: var(--cx-accent); --cx-filter-bg: rgba(77,141,255,.12); }
/* 다크: 배경 밝게 + 글자 어둡게(강한 대비, 확실히 눈에 띔 — 사용자 요청) */
body.catx-on:not(.catx-light){ --cx-filter-bd:#86a9db; --cx-filter-tx:#17253f; --cx-filter-bg:#9cbce9; }
/* bootstrap-select(값선택) + 커스텀(cx-filter-active) */
body.catx-on .search_filter_btm .bootstrap-select > .btn.dropdown-toggle:not(.bs-placeholder),
body.catx-on .search_filter_btm .form_box .btn.btn-center.btn-default.dropdown-toggle.cx-filter-active{
	border-color: var(--cx-filter-bd) !important; color: var(--cx-filter-tx) !important;
	background: var(--cx-filter-bg) !important; font-weight:600 !important;
}
/* 텍스트 입력칸 — border 는 shorthand+특이도(:not(.bs-placeholder))라야 base 를 이김 */
body.catx-on .search_filter_btm .form_box input[type="text"]:not(:placeholder-shown):not(.bs-placeholder),
body.catx-on .search_filter_btm .form_box input.form-control:not(:placeholder-shown):not(.bs-placeholder){
	border:1px solid var(--cx-filter-bd) !important; color: var(--cx-filter-tx) !important;
	background: var(--cx-filter-bg) !important; font-weight:600 !important;
}
/* 커스텀 버튼 내부 텍스트 div */
body.catx-on .search_filter_btm .btn.btn-center.btn-default.dropdown-toggle.cx-filter-active .type_sub_tit2,
body.catx-on .search_filter_btm .btn.btn-center.btn-default.dropdown-toggle.cx-filter-active .ellipsis{ color: var(--cx-filter-tx) !important; }
/* 캐럿(화살표) */
body.catx-on .search_filter_btm .bootstrap-select > .btn.dropdown-toggle:not(.bs-placeholder) .caret,
body.catx-on .search_filter_btm .btn.btn-center.btn-default.dropdown-toggle.cx-filter-active .caret{ border-top-color: var(--cx-filter-tx) !important; border-bottom-color: var(--cx-filter-tx) !important; }
/* 선택 개수 배지(.badge, 기본 #333/흰글자) — 다크 밝은칩 위에서 네이비 pill 로 */
body.catx-on:not(.catx-light) .search_filter_btm .bootstrap-select > .btn.dropdown-toggle:not(.bs-placeholder) .badge{ background:#17253f !important; color:#dbe8fc !important; }

/* 다크: 필터 hover/열림/포커스/active — 기존 --cx-hover-bg(20% 블루)가 허옇게 워시돼 글자가 안읽히던 것 → 솔리드 다크블루(#2f3d5c)+밝은글자로 명확히. :focus/.active/:active 까지 덮어 Bootstrap 기본 밝은회색 열림상태 제거 */
body.catx-on:not(.catx-light) .search_filter_btm .form_box .btn.dropdown-toggle:hover,
body.catx-on:not(.catx-light) .search_filter_btm .form_box .btn.dropdown-toggle:focus,
body.catx-on:not(.catx-light) .search_filter_btm .form_box .btn.dropdown-toggle.active,
body.catx-on:not(.catx-light) .search_filter_btm .form_box .btn.dropdown-toggle:active,
body.catx-on:not(.catx-light) .search_filter_btm .form_box .bootstrap-select.open > .btn.dropdown-toggle{ background:#2f3d5c !important; background-image:none !important; color:#eaf1fb !important; box-shadow:none !important; }
body.catx-on:not(.catx-light) .search_filter_btm .form_box .btn.dropdown-toggle:hover .filter-option,
body.catx-on:not(.catx-light) .search_filter_btm .form_box .bootstrap-select.open > .btn.dropdown-toggle .filter-option{ color:#eaf1fb !important; }
body.catx-on:not(.catx-light) .search_filter_btm .form_box .btn.dropdown-toggle:hover .caret,
body.catx-on:not(.catx-light) .search_filter_btm .form_box .bootstrap-select.open > .btn.dropdown-toggle .caret{ border-top-color:#eaf1fb !important; border-bottom-color:#eaf1fb !important; }
/* 선택된 필터는 열림/hover/포커스 에도 밝은 칩 유지(위 솔리드 열림상태를 이김) */
body.catx-on:not(.catx-light) .search_filter_btm .bootstrap-select.open > .btn.dropdown-toggle:not(.bs-placeholder),
body.catx-on:not(.catx-light) .search_filter_btm .bootstrap-select > .btn.dropdown-toggle:not(.bs-placeholder):hover,
body.catx-on:not(.catx-light) .search_filter_btm .bootstrap-select > .btn.dropdown-toggle:not(.bs-placeholder):focus{ background: var(--cx-filter-bg) !important; color: var(--cx-filter-tx) !important; }
body.catx-on:not(.catx-light) .search_filter_btm .bootstrap-select.open > .btn.dropdown-toggle:not(.bs-placeholder) .filter-option{ color: var(--cx-filter-tx) !important; }
body.catx-on:not(.catx-light) .search_filter_btm .bootstrap-select.open > .btn.dropdown-toggle:not(.bs-placeholder) .caret,
body.catx-on:not(.catx-light) .search_filter_btm .bootstrap-select > .btn.dropdown-toggle:not(.bs-placeholder):hover .caret{ border-top-color: var(--cx-filter-tx) !important; border-bottom-color: var(--cx-filter-tx) !important; }

/* 필터 영역 상/하 여백 균형(모드 무관 — 레이아웃) — 필터블록 margin-bottom:5px 가 마지막 행에 트레일링으로 남아 하단이 상단보다 넓던 것(11 vs 18) → 행간을 row-gap 으로 옮기고 트레일링 제거 → .filter_content 상하 11/11 대칭 */
body.catx-on .search_filter_btm .filter_content{ row-gap:5px !important; align-content:flex-start !important; }
body.catx-on .search_filter_btm .filter_content > *{ margin-bottom:0 !important; }

/* 필터 접힘(.on) 바: 컴팩트 + 좌(선택된필터조건)·우(필터펼치기) 세로 중앙 정렬 통일. 펼침 무영향 = .on 한정.
   ⚠️ 데스크톱 전용(min-width:769px)! 모바일에선 .search_filter_btm.on 이 "열린 전체필터 오버레이"라
   이 접힘바 규칙(특히 filter_title flex-center)이 새어들면 선택된필터조건이 빈 공간에 뜨고 레이아웃이 깨짐.
   → 모바일은 앱 기본(일반형)대로 두고, 접힘바 보정은 데스크톱에만 적용. */
@media (min-width:769px){
  body.catx-on .search_filter_btm.on td{ padding-top:8px !important; padding-bottom:8px !important; vertical-align:middle !important; }
  body.catx-on .search_filter_btm.on .btn_box{ height:auto !important; }
  /* 좌: filter_title — 한글 디센더로 박스중심보다 시각중심이 위로 뜸 → translateY(4)로 바 중앙 보정(우측 토글과 라인 맞춤) */
  body.catx-on .search_filter_btm.on .filter_title{ display:flex !important; align-items:center !important; justify-content:center !important; gap:6px !important; margin:0 !important; line-height:1 !important; transform:translateY(4px) !important; }
  /* 우: 필터펼치기 토글(.filter_top_btn: absolute+top:-7, .btn_open line-height:35) 컴팩트 바 위 삐져나옴 방지 → 바 높이에 flex 중앙 + line-height 축소 */
  body.catx-on .search_filter_btm.on .filter_top_btn{ top:0 !important; bottom:0 !important; display:flex !important; align-items:center !important; justify-content:flex-end !important; }
  /* btn_open 이 flex 라 native text-align:center 무시됨 → 텍스트가 115px 박스 좌측에 붙던 것(좌측정렬로 보임) → justify-content:center 로 가로 중앙정렬 */
  body.catx-on .search_filter_btm.on .btn_open{ line-height:1 !important; display:inline-flex !important; align-items:center !important; justify-content:center !important; }
  /* 개수 배지(.title_num) = accent 칩(선택개수). ※라벨은 원래 어두운색 유지 — 접힘 바 배경이 #f7f7f7(밝은회색, 양 모드 공통)이라 흰색이면 안보임(이전 실수 정정) */
  body.catx-on .search_filter_btm.on .filter_title .title_num{ background: var(--cx-accent) !important; color:#fff !important; border:1px solid var(--cx-accent) !important; border-radius:10px !important; padding:1px 8px !important; font-size:var(--dash-font-12, 12px) !important; line-height:16px !important; display:inline-flex !important; align-items:center !important; }
}
/* ── 모바일 전체필터 오버레이 다크(≤768) : 앱 기본이 흰 패널+검정 문구라 다크에서 안 보임 → 패널/문구/입력칸/칩 다크화.
   ※ .on=모바일에선 열린 오버레이. 네이티브 <select> 옵션목록은 OS 렌더라 CSS 불가(닫힌 버튼만 다크). ── */
@media (max-width:768px){
  /* 패널 배경 */
  body.catx-on:not(.catx-light) .search_filter_btm.on .form_box{ background: var(--cx-panel) !important; }
  body.catx-on:not(.catx-light) .search_filter_btm.on .close_topbtn{ background: var(--cx-card) !important; }
  /* 문구 밝게 */
  body.catx-on:not(.catx-light) .search_filter_btm.on,
  body.catx-on:not(.catx-light) .search_filter_btm.on h1,
  body.catx-on:not(.catx-light) .search_filter_btm.on h2,
  body.catx-on:not(.catx-light) .search_filter_btm.on h3,
  body.catx-on:not(.catx-light) .search_filter_btm.on h4,
  body.catx-on:not(.catx-light) .search_filter_btm.on .title,
  body.catx-on:not(.catx-light) .search_filter_btm.on label,
  body.catx-on:not(.catx-light) .search_filter_btm.on .search_title,
  body.catx-on:not(.catx-light) .search_filter_btm.on p{ color: var(--cx-strong) !important; }
  body.catx-on:not(.catx-light) .search_filter_btm.on span:not(.title_num):not(.man):not(.won_unit):not(.price_won):not(.price_to_won):not(.wonly):not(.hyunwon){ color: var(--cx-body) !important; }
  /* 입력칸/셀렉트(닫힌 버튼) */
  body.catx-on:not(.catx-light) .search_filter_btm.on input[type=text],
  body.catx-on:not(.catx-light) .search_filter_btm.on input[type=number],
  body.catx-on:not(.catx-light) .search_filter_btm.on select{ background: var(--cx-card) !important; color: var(--cx-strong) !important; border-color: var(--cx-line2) !important; }
  body.catx-on:not(.catx-light) .search_filter_btm.on input::placeholder{ color: var(--cx-sub) !important; }
  /* 단위칩(만원/억원) */
  body.catx-on:not(.catx-light) .search_filter_btm.on .input_span_box > span,
  body.catx-on:not(.catx-light) .search_filter_btm.on .min_max input + span{ background: var(--cx-chip) !important; color: var(--cx-body) !important; border-color: var(--cx-line2) !important; }
  /* 거래유형(매물종류) 타입 버튼 */
  body.catx-on:not(.catx-light) .search_filter_btm.on .d_types{ background: var(--cx-chip) !important; color: var(--cx-body) !important; border-color: var(--cx-line2) !important; }
  body.catx-on:not(.catx-light) .search_filter_btm.on .d_types.active,
  body.catx-on:not(.catx-light) .search_filter_btm.on .d_types.on{ background: var(--cx-accent) !important; color:#fff !important; border-color: var(--cx-accent) !important; }
  /* 카테고리/드롭박스 테두리 + ellipsis 배경 제거 */
  body.catx-on:not(.catx-light) .search_filter_btm.on .search_box,
  body.catx-on:not(.catx-light) .search_filter_btm.on :is(.price_drop_box,.area_drop_box,.floor_drop_box,.type_floor_drop_box,.addfilter_drop_box,.admin_hoist_drop_box,.hoist_drop_box,.owner_drop_box,.parking_drop_box,.auction_bids_drop_box,.auction_date_drop_box,.electric_power_drop_box){ border-color: var(--cx-line2) !important; }
  body.catx-on:not(.catx-light) .search_filter_btm.on .ellipsis{ background: transparent !important; }
}
/* ── 매물목록 모바일 개선(≤768) : 상단여백·툴바색감·페이징·필터 z-index·불필요버튼숨김·칩 ── */
@media (max-width:992px){ /* 앱이 ≤992px에서 모바일 리스트(item_table_mobile)를 렌더 → catx 모바일 카드/액션바 스타일도 992까지 확장(769~992 깨짐 수정) */
  /* 0. 이중 스크롤 제거 — 매물목록 페이지에서 바깥(html/body) 스크롤 잠금. 내부 리스트(mobile_list)만 스크롤.
        앱셸(admin_main_wrap 고정높이 + 내부스크롤)이 뷰포트를 ~40px 넘겨 바깥 스크롤이 생기던 것 차단. */
  html:has(body.catx-on .item_table_mobile){ height:100vh !important; max-height:100vh !important; overflow:hidden !important; }
  body.catx-on:has(.item_table_mobile){ height:100vh !important; max-height:100vh !important; overflow:hidden !important; }
  /* 1. 목록 상단 여백 축소(헤더~툴바 사이 과대 여백) */
  body.catx-on .admin_main_wrap{ padding-top:12px !important; }
  /* 2. 툴바 PC catx 색감 통일(개수배지·정렬·필터·매물등록·키워드·검색버튼) */
  body.catx-on .admin_itemList .item_num.badge{ background:var(--cx-accent) !important; border-color:var(--cx-accent) !important; color:#fff !important; border-radius:7px !important; }
  body.catx-on .admin_itemList .align_dropdown .btn_dropdown{ background:var(--cx-card) !important; color:var(--cx-strong) !important; border:1px solid var(--cx-line2) !important; border-radius:7px !important; }
  body.catx-on .admin_itemList .mobile_search_btn{ background:var(--cx-card) !important; color:var(--cx-accent) !important; border:1px solid var(--cx-accent) !important; border-radius:7px !important; }
  body.catx-on .admin_itemList .mobile_search_btn span{ color:var(--cx-accent) !important; }
  body.catx-on .admin_itemList .insert_btn{ background:var(--cx-accent) !important; color:#fff !important; border:1px solid var(--cx-accent) !important; border-radius:7px !important; }
  body.catx-on .admin_itemList #d_keyword_mo,
  body.catx-on .admin_itemList #item_id_temp_mo{ background:var(--cx-card) !important; color:var(--cx-strong) !important; border:1px solid var(--cx-line2) !important; }
  body.catx-on .admin_itemList #d_keyword_mo::placeholder,
  body.catx-on .admin_itemList #item_id_temp_mo::placeholder{ color:var(--cx-sub) !important; }
  body.catx-on .admin_itemList .admin_search_group .btn_search{ background:var(--cx-accent) !important; border-color:var(--cx-accent) !important; color:#fff !important; }
  body.catx-on .admin_itemList .admin_search_group .input-group .btn-default{ background:var(--cx-red) !important; border-color:var(--cx-red) !important; color:#fff !important; }
  /* 3. 하단 페이징 노출 보장 + 하단 여백(플로팅 위젯 가림 방지) */
  body.catx-on .item_table_mobile .pagination_box{ display:block !important; padding-bottom:24px !important; }
  /* 5. 전체필터 오버레이를 헤더(.catx-topbar z:30050) 위로 → 상단 가림 해결(오버레이 자체 X 있음) */
  body.catx-on .search_filter_btm.on{ z-index:30100 !important; }
  /* [모바일 전체필터] 금액/면적 접기.
   * .drop_title.on + .drop_content 규칙만으로는 안 먹는 경우가 있어(같은 영역에
   * display:block !important 로 강제되는 규칙들이 섞여 있다) 구조 기반으로 확실히 접는다.
   * 헤더(.search_block_mo)만 남기고 그 섹션의 나머지 자식을 모두 숨긴다. */
  body.catx-on #searchConsoleTop .search_block:has(> .search_block_mo.drop_title:not(.on)) > *:not(.search_block_mo){ display:none !important; }
  /* 캐럿 방향 */
  body.catx-on #searchConsoleTop .search_block_mo.drop_title{ cursor:pointer; }
  body.catx-on #searchConsoleTop .search_block_mo.drop_title .arrow_box > i{ transition:transform .15s; }
  /* 캐럿: 기본 아이콘이 fa-chevron-down 이라 펼침(.on)일 때만 180도 돌린다.
   * 앞서 :not(.on) 에 회전을 걸어 방향이 반대로 나왔다(접었는데 위쪽 화살표). */
  body.catx-on #searchConsoleTop .search_block_mo.drop_title.on .arrow_box > i{ transform:rotate(180deg); }
  body.catx-on #searchConsoleTop .search_block_mo.drop_title:not(.on) .arrow_box > i{ transform:none; }

  /* [모바일 전체필터] 마지막 필터가 하단 '검색하기' 버튼에 가려 잘리던 문제.
   * .form_box 는 height:calc(100% - 88px)(헤더44+푸터44 가정)인데 catx 는
   * 헤더 54 + 푸터 약 74+safe-area 라 아래가 더 가려진다. 스크롤 영역 자체를 줄인다. */
  body.catx-on .search_filter_btm.on .form_box{ height:calc(100% - 54px - 70px - env(safe-area-inset-bottom)) !important; }
  /* 6. 필터 내 불필요 섹션 토글 버튼 숨김(모바일은 섹션이 인라인 확장이라 중복).
        금액/면적/주차/경매유찰/전력/호이스트/경매매각기일/층/소유자 = .btn.btn-center.btn-default.dropdown-toggle
        (bootstrap-select 셀렉트 버튼은 .btn-center 없음 → 시/도·방·화장실 등은 유지). .type_sub_view_All(면적류)도 숨김.
        ※ 개별 필드 라벨 .type_sub_view_*(보증금/최저가 등)은 유지. */
  body.catx-on .search_filter_btm.on .type_sub_view_All{ display:none !important; }
  body.catx-on .search_filter_btm.on .btn.btn-center.btn-default.dropdown-toggle{ display:none !important; }
  /* 7. 멀티선택 칩(매물종류/테마/라벨/옵션=.check_select, 거래유형=.d_types)
        — 모양/크기(radius·padding)는 앱 원본 유지, 테두리/색감만 개선(다크 가독성). */
  body.catx-on:not(.catx-light) .search_filter_btm.on .check_select,
  body.catx-on:not(.catx-light) .search_filter_btm.on .d_types{ background:var(--cx-chip) !important; color:var(--cx-body) !important; border-color:var(--cx-line2) !important; }
  body.catx-on:not(.catx-light) .search_filter_btm.on .check_select.on,
  body.catx-on:not(.catx-light) .search_filter_btm.on .check_select.active,
  body.catx-on:not(.catx-light) .search_filter_btm.on .d_types.on,
  body.catx-on:not(.catx-light) .search_filter_btm.on .d_types.active{ background:var(--cx-accent) !important; color:#fff !important; border-color:var(--cx-accent) !important; }
  /* 8. 카테고리 팝업 패널(.dropdown-menu:is(.price_drop_box,.area_drop_box,.floor_drop_box,.type_floor_drop_box,.addfilter_drop_box,.admin_hoist_drop_box,.hoist_drop_box,.owner_drop_box,.parking_drop_box,.auction_bids_drop_box,.auction_date_drop_box,.electric_power_drop_box))은 PC=팝업이라 테두리 필요하나,
        모바일에선 인라인 확장이라 그 테두리/라운드/그림자가 박스처럼 남아 이상 → 모바일 한정 제거.
        + float:none — 이 패널들은 float:left 라 6번에서 토글버튼(유일 in-flow 요소) 숨기면 컨테이너
        높이가 0으로 붕괴돼 주차/전력/호이스트/소유자 컨트롤이 다음 섹션과 겹침 → in-flow 로 복원. */
  body.catx-on .search_filter_btm .dropdown-menu:is(.price_drop_box,.area_drop_box,.floor_drop_box,.type_floor_drop_box,.addfilter_drop_box,.admin_hoist_drop_box,.hoist_drop_box,.owner_drop_box,.parking_drop_box,.auction_bids_drop_box,.auction_date_drop_box,.electric_power_drop_box){ border:none !important; border-radius:0 !important; box-shadow:none !important; float:none !important; }
  /* 9. 단위 입력칸(전력 Kw/호이스트 톤/층 등) — 2열 좁은 min/max(≈75px)에서 입력+단위span 이 둘 다 float:left 라
        단위가 아래로 줄바꿈돼 겹침 → .min_max 를 flex-nowrap: 입력은 flex로 줄고 단위는 옆에 붙음.
        (금액 등 전체폭 min/max 는 입력이 넓어 그대로 한 줄, 무해) */
  body.catx-on .search_filter_btm.on .min_max{ display:flex !important; flex-wrap:nowrap !important; align-items:center !important; }
  body.catx-on .search_filter_btm.on .min_max > input{ float:none !important; flex:1 1 auto !important; min-width:0 !important; width:auto !important; }
  body.catx-on .search_filter_btm.on .min_max > input + span{ float:none !important; flex:0 0 auto !important; }
  /* 10. 목록 하단 가상스크롤 더미(빈 .item_mobile_box, 인라인 height 수천px)가 거대 여백을 만들고
        페이징을 그 아래로 밀어내 "페이징 안 보임" → 빈 더미 숨김(내용 있는 카드는 :empty 아님, 무해). */
  body.catx-on .item_table_mobile .item_mobile_box:empty{ display:none !important; }
  /* 11. 소유자(oWner) 섹션: 고객그룹 select + 고객명 input 이 좁은 2열 컬럼(≈170px)에 flex-nowrap 으로
        한 줄 강제돼 가로 스크롤 발생 → 입력칸을 유연 축소해 컬럼 안에 맞춤. */
  body.catx-on .search_filter_btm.on .dropdown_owner_con .input_span_box{ flex:1 1 auto !important; min-width:0 !important; width:auto !important; }
  body.catx-on .search_filter_btm.on .dropdown_owner_con .search_text{ width:100% !important; min-width:0 !important; }
  /* 12. 목록 페이징 하단 고정(모바일) — 스크롤과 무관하게 화면 하단에 항상 노출.
        페이지 번호 5개 제한은 JS(cx_pagination_mobile). 리스트에 하단 여백으로 마지막 카드 가림 방지. */
  body.catx-on .item_table_mobile .pagination_box{ position:fixed !important; left:0 !important; right:0 !important; bottom:0 !important; margin:0 !important; padding:8px 0 !important; background:var(--cx-panel) !important; border-top:1px solid var(--cx-line2) !important; box-shadow:0 -2px 8px rgba(0,0,0,.12) !important; z-index:2000 !important; }
  /* 하단 고정 페이징(z 2000)이 열려 있는 모달(.modal, z 1050)보다 위로 올라오던 문제
   * → 상단바와 동일하게 body.catx-modal-vis(보이는 모달 있을 때만 부여) 로 모달 아래로 내린다. */
  body.catx-on.catx-modal-vis .item_table_mobile .pagination_box{ z-index:1000 !important; }
  body.catx-on .item_table_mobile{ padding-bottom:58px !important; }
  /* 13. 매물 카드 디자인 통일(PC catx 시스템) — HTML/구조 불변, CSS만.
        ⓐ 카드 구분: 하단선(2px #000) → 각 카드에 테두리+배경+라운드+패딩으로 개별 카드화(구분감).
           배경은 토큰(라이트 #fff / 다크 표면). overflow는 미설정(업무/추가기능 드롭다운 잘림 방지). */
  body.catx-on .item_table_mobile .item_mobile_box{ border:1px solid var(--cx-line2) !important; border-radius:10px !important; padding:10px !important; margin-bottom:10px !important; background-color:var(--cx-panel) !important; }
  /* ⓐ-2 카드 최상단/최하단 내부 구분선 제거(카드 테두리와 중복) — 중간 섹션 구분선은 유지 */
  body.catx-on .item_table_mobile .item_mobile_box table.table_admin_itemlist > tbody > tr:first-child > td{ border-top:0 !important; }
  body.catx-on .item_table_mobile .item_mobile_box table.table_admin_itemlist > tbody > tr:last-child > td{ border-bottom:0 !important; }
  /* [안티플래시] 모바일 카드도 리오거나이저 적용(.cxm-on) 전 잠깐 숨김 → 재렌더 시 원본 번쩍임 방지. cxmab-active 게이트로 JS 미동작 시 안전 */
  body.catx-on.cxmab-active .item_table_mobile .item_mobile_box[data-id]:not(.cxm-on):not(.lazy_stub){ visibility:hidden !important; }
  /* ⓐ-4 [모바일] 체크박스를 정보행 아래 전체폭 가로 한 줄로(시안). 리오거나이저가 .cxmab-chkrow 로 분리 */
  body.catx-on .item_table_mobile .cxmab-chkrow > td{ padding:6px 0 !important; border:0 !important; border-top:1px solid var(--cx-line2) !important; }
  /* 매물사진 ↔ 매물정보 사이 여백 */
  body.catx-on .item_table_mobile .item_mobile_box .item_info_box_L{ padding-left:10px !important; }
  body.catx-on .item_table_mobile .cxmab-chkrow .public_select_box{ display:flex !important; flex-wrap:wrap !important; align-items:center !important; justify-content:flex-start !important; gap:6px 11px !important; width:100% !important; overflow:visible !important; }
  body.catx-on .item_table_mobile .cxmab-chkrow .public_select_box > span{ display:inline-flex !important; align-items:center !important; width:auto !important; flex:0 0 auto !important; min-width:0 !important; padding:0 !important; margin:0 !important; white-space:nowrap !important; border:0 !important; }
  body.catx-on .item_table_mobile .cxmab-chkrow .public_select_box > span{ line-height:1 !important; }
  body.catx-on .item_table_mobile .cxmab-chkrow .public_select_box label{ display:inline-flex !important; align-items:center !important; gap:3px !important; margin:0 !important; padding:0 !important; font-size:var(--dash-font-11, 11px) !important; font-weight:500 !important; line-height:1 !important; white-space:nowrap !important; cursor:pointer !important; }
  body.catx-on .item_table_mobile .cxmab-chkrow .public_select_box input{ margin:0 !important; width:12px !important; height:12px !important; flex:0 0 auto !important; vertical-align:middle !important; }
  /* [catx 모바일] 층/면적 라인(신규, 주소↔담당자 사이): 한 줄 회색 소형. floor_wrap + 면적 라벨/값 span */
  body.catx-on .item_table_mobile .cxm_floor_area{ margin:2px 0 1px !important; font-size:var(--dash-font-11, 11px) !important; line-height:1.55 !important; color:var(--cx-sub) !important; white-space:nowrap !important; overflow:hidden !important; text-overflow:ellipsis !important; max-width:100% !important; }
  body.catx-on .item_table_mobile .cxm_floor_area .item_list_area_wrap{ display:inline !important; background:transparent !important; padding:0 !important; border-radius:0 !important; }
  body.catx-on .item_table_mobile .cxm_floor_area .floor_wrap{ font-size:var(--dash-font-11, 11px) !important; color:var(--cx-sub) !important; }
  body.catx-on .item_table_mobile .cxm_floor_area .floor_wrap:not(:empty)::after{ content:'|' !important; margin:0 3px !important; color:var(--cx-line2) !important; }
  body.catx-on .item_table_mobile .cxm_floor_area .item_list_area_wrap > span{ font-size:var(--dash-font-11, 11px) !important; color:var(--cx-sub) !important; }
  body.catx-on .item_table_mobile .cxm_floor_area .item_list_area_wrap > span + span{ margin-left:2px !important; }
  /* [catx 모바일] 필수입력부족: 주소 앞 → 매물사진 아래 이동 + '입력부족' 문구(빨강 소형) */
  /* 버튼(연분홍 배지) 처리 + 매물사진과 동일 가로폭·정렬(td=썸네일 60px → width:100%) */
  body.catx-on .item_table_mobile .cxm-reqmoved{ position:static !important; display:flex !important; width:100% !important; box-sizing:border-box !important; align-items:center !important; justify-content:center !important; gap:2px !important; margin:4px 0 0 !important; padding:2px 2px !important; background:rgba(218,0,0,.07) !important; border:1px solid rgba(218,0,0,.35) !important; border-radius:5px !important; color:var(--cx-red) !important; font-size:var(--dash-font-9_5, 9.5px) !important; font-weight:700 !important; line-height:1.2 !important; white-space:nowrap !important; overflow:hidden !important; cursor:pointer !important; }
  /* [catx 모바일] 카드 정돈 배치: 썸네일 라운드 · 섹션 여백 축소 · 담당자 -1px · 종류 볼드제거/정렬 · 금액 세로중앙 */
  body.catx-on .item_table_mobile .item_img_box{ border-radius:6px !important; overflow:hidden !important; }
  body.catx-on .item_table_mobile .table_admin_itemlist tbody tr:first-child > td{ padding-top:3px !important; padding-bottom:3px !important; }
  body.catx-on .item_table_mobile .item_address{ margin-bottom:0 !important; }
  body.catx-on .item_table_mobile .officer_box{ margin-top:1px !important; }
  body.catx-on .item_table_mobile .officer_box, body.catx-on .item_table_mobile .officer_box *{ font-size:var(--dash-font-12, 12px) !important; }
  body.catx-on .item_table_mobile .btm_box{ align-items:center !important; column-gap:6px !important; }
  /* 테마종류(종류/특징)가 길면 가로로 넘치지 않고 여러 줄로 줄바꿈(구분선/카드 폭 안에서). 한 줄 말줄임 아님. */
  body.catx-on .item_table_mobile .btm_box .thema_type_box{ white-space:normal !important; overflow:hidden !important; min-width:0 !important; word-break:break-all !important; }
  body.catx-on .item_table_mobile .btm_box .thema_type_box .ellipsis{ white-space:normal !important; overflow:visible !important; text-overflow:clip !important; display:inline !important; }
  body.catx-on .item_table_mobile .table_admin_itemlist tbody tr:has(.btm_box) > td, body.catx-on .item_table_mobile .table_admin_itemlist tbody tr:has(.btms) > td{ padding-top:3px !important; padding-bottom:3px !important; }
  /* 카드 내 구분선 색상/두께 통일: 종류/금액행이 앱 기본 #ddd라 체크박스행·카드하단선(--cx-line2)과 달랐음 → --cx-line2 1px로 통일 */
  body.catx-on .item_table_mobile .table_admin_itemlist tbody tr:has(.btm_box) > td, body.catx-on .item_table_mobile .table_admin_itemlist tbody tr:has(.btms) > td{ border-top:1px solid var(--cx-line2) !important; }
  /* 목록 스크롤바 시각적 숨김(기능 유지) — 스크롤바 8px가 우측 여백을 차지해 정렬이 어긋나 보이던 것 해소 */
  body.catx-on .item_table_mobile .mobile_list{ scrollbar-width:none !important; -ms-overflow-style:none !important; }
  body.catx-on .item_table_mobile .mobile_list::-webkit-scrollbar{ width:0 !important; height:0 !important; display:none !important; }
  body.catx-on .item_table_mobile .btm_box .thema_type_box, body.catx-on .item_table_mobile .btm_box .thema_type_box *{ font-family:"Apple SD Gothic Neo", NotoSansKR, "apple gothic", "\B9D1\C740 \ACE0\B515", sans-serif !important; font-weight:400 !important; }
  body.catx-on .item_table_mobile .btm_box .price_type_box{ display:inline-flex !important; align-items:center !important; margin-left:0 !important; } /* 앱 기본 margin-left(6px) 제거: 금액이 2줄로 내려갈 때 좌측 여백 생기던 것 해소. 같은 줄 간격은 btm_box column-gap */
  body.catx-on .item_table_mobile .btm_box .price_block{ display:inline-flex !important; align-items:center !important; justify-content:center !important; align-self:center !important; width:16px !important; height:16px !important; min-width:16px !important; min-height:0 !important; line-height:1 !important; padding:0 !important; font-size:var(--dash-font-9, 9px) !important; box-sizing:border-box !important; flex:0 0 auto !important; } /* 매 배지: 정사각형(16×16), 중앙정렬. price_type_box(overflow:hidden) 잘림 해소 */
  body.catx-on .item_table_mobile .cxm-reqmoved > i{ color:var(--cx-red) !important; font-size:var(--dash-font-10, 10px) !important; margin:0 !important; }
  body.catx-on .item_table_mobile .cxm-reqmoved .cxm-req-label{ color:var(--cx-red) !important; font-size:var(--dash-font-9_5, 9.5px) !important; font-weight:700 !important; }
  /* 종류/금액 줄(체크박스행 다음) 폰트 축소 + 세로 정렬 통일(line-height·vertical-align 차이로 어긋나던 것 보정) */
  body.catx-on .item_table_mobile .cxmab-chkrow + tr .btm_box{ font-size:var(--dash-font-12, 12px) !important; line-height:1.6 !important; }
  body.catx-on .item_table_mobile .cxmab-chkrow + tr .btm_box *{ font-size:inherit !important; line-height:1.6 !important; vertical-align:middle !important; }
  body.catx-on .item_table_mobile .cxmab-chkrow + tr .btm_box .price_block{ font-size:var(--dash-font-9_5, 9.5px) !important; }
  body.catx-on .item_table_mobile .price_type_box .item_price_change{
    border:1px solid var(--cx-line2) !important; border-radius:6px !important; color:var(--cx-body) !important; font-weight:500 !important;
    height:20px !important; box-sizing:border-box !important;
    gap:1px !important; margin-left:3px !important; padding:1px 4px !important;
    line-height:1 !important;
  }
  body.catx-on .item_table_mobile .price_type_box .item_price_change > i,
  body.catx-on .item_table_mobile .price_type_box .item_price_change > svg{
    font-size:var(--dash-font-10, 10px) !important; line-height:1 !important;
  }
  body.catx-on .item_table_mobile .price_type_box .item_price_change_text{
    color:var(--cx-body) !important;
    font-size:var(--dash-font-10, 10px) !important; font-weight:500 !important; line-height:1 !important;
  }

  /* ⓐ-8 [모바일 전체필터] 경매 유찰 횟수 / 경매 매각 기일 정렬.
   * 두 패널은 마크업에 price_drop_box 클래스가 같이 붙어 있어(search_inner.php:6554,6593)
   * 금액 패널용으로 넣은 `.price_drop_box > .drop_price_box{padding:10px}` 를 그대로 받는다.
   * 그래서 좌우 10px 씩 안으로 밀려 옆 칸(방향/경매 종류 등)과 시작선이 어긋나 보였다.
   * 여러 줄인 금액과 달리 이 둘은 한 줄짜리라 안쪽 여백이 필요 없다 → 0 으로 되돌리고 폭을 채운다. */
  body.catx-on #searchConsoleTop :is(.auction_bids_drop_box,.auction_date_drop_box) > .drop_price_box{
    padding:0 !important; display:flex !important; flex-wrap:nowrap !important; align-items:center !important;
    gap:4px !important; width:100% !important; box-sizing:border-box !important; }
  body.catx-on #searchConsoleTop :is(.auction_bids_drop_box,.auction_date_drop_box) > .drop_price_box > :is(select,input){
    flex:1 1 0 !important; width:auto !important; min-width:0 !important; }
  body.catx-on #searchConsoleTop :is(.auction_bids_drop_box,.auction_date_drop_box) > .drop_price_box > span{
    flex:0 0 auto !important; padding:0 !important; }
  /* 패널 자체도 칸 너비를 채우게 (bootstrap dropdown-menu 의 min-width:160px 잔재 제거) */
  body.catx-on #searchConsoleTop :is(.auction_bids_box,.auction_date_box) > .dropdown{ width:100% !important; float:none !important; }
  body.catx-on #searchConsoleTop :is(.auction_bids_drop_box,.auction_date_drop_box){
    width:100% !important; min-width:0 !important; max-width:none !important; box-sizing:border-box !important; }
  /* ⓐ-7 [모바일 전체필터] 패널 안 '검색 초기화' 버튼(.btn_box) 숨김.
   * 상단에 전체 '초기화'가 따로 있어 중복이고, 이 버튼이 패널 폭을 잡아
   * 입력칸과 정렬이 어긋나 보이는 원인이기도 하다.
   * ※ #searchConsoleTop + max-width:992px 스코프라 PC 필터 팝업은 그대로 둔다. */
  body.catx-on #searchConsoleTop .dropdown-menu:is(.price_drop_box,.area_drop_box,.floor_drop_box,.type_floor_drop_box,.addfilter_drop_box,.admin_hoist_drop_box,.hoist_drop_box,.owner_drop_box,.parking_drop_box,.auction_bids_drop_box,.auction_date_drop_box,.electric_power_drop_box) .btn_box{ display:none !important; }
  /* ⓐ-5 [모바일 필터] 전력(Kw)/호이스트(톤) 등 단위 붙은 min_max: 2열 좁은 폭에서 입력폭+단위가 넘쳐 단위가 잘리던 문제.
     PC용 form-control width:58/flex:none, span min-width:34 override를 모바일에서 동일 특이도로 해제하고 flex로 수납. */
  body.catx-on .search_filter_btm .dropdown-menu:is(.price_drop_box,.area_drop_box,.floor_drop_box,.type_floor_drop_box,.addfilter_drop_box,.admin_hoist_drop_box,.hoist_drop_box,.owner_drop_box,.parking_drop_box,.auction_bids_drop_box,.auction_date_drop_box,.electric_power_drop_box) .min_max_box{ display:flex !important; flex-wrap:nowrap !important; align-items:center !important; gap:3px !important; overflow:visible !important; }
  body.catx-on .search_filter_btm .dropdown-menu:is(.price_drop_box,.area_drop_box,.floor_drop_box,.type_floor_drop_box,.addfilter_drop_box,.admin_hoist_drop_box,.hoist_drop_box,.owner_drop_box,.parking_drop_box,.auction_bids_drop_box,.auction_date_drop_box,.electric_power_drop_box) .min_max_box > .min_max{ flex:1 1 0 !important; min-width:0 !important; display:flex !important; flex-wrap:nowrap !important; align-items:center !important; overflow:visible !important; }
  body.catx-on .search_filter_btm .dropdown-menu:is(.price_drop_box,.area_drop_box,.floor_drop_box,.type_floor_drop_box,.addfilter_drop_box,.admin_hoist_drop_box,.hoist_drop_box,.owner_drop_box,.parking_drop_box,.auction_bids_drop_box,.auction_date_drop_box,.electric_power_drop_box) .min_max .form-control{ width:auto !important; flex:1 1 0 !important; min-width:0 !important; }
  body.catx-on .search_filter_btm .dropdown-menu:is(.price_drop_box,.area_drop_box,.floor_drop_box,.type_floor_drop_box,.addfilter_drop_box,.admin_hoist_drop_box,.hoist_drop_box,.owner_drop_box,.parking_drop_box,.auction_bids_drop_box,.auction_date_drop_box,.electric_power_drop_box) .min_max > span,
  body.catx-on .search_filter_btm .dropdown-menu:is(.price_drop_box,.area_drop_box,.floor_drop_box,.type_floor_drop_box,.addfilter_drop_box,.admin_hoist_drop_box,.hoist_drop_box,.owner_drop_box,.parking_drop_box,.auction_bids_drop_box,.auction_date_drop_box,.electric_power_drop_box) .min_max input + span{ min-width:0 !important; padding:0 3px !important; font-size:var(--dash-font-10_5, 10.5px) !important; }
  /* ⓐ-6 [모바일 필터] 주차: 셀렉트(선택)+입력(주차이상)+단위 행이 컨테이너(167px)를 넘겨 가로 스크롤이 생기고
     셀렉트/입력 세로선이 어긋나던 문제. flex로 수납(입력 flex 축소)하고 align-items:center로 정렬. */
  body.catx-on .search_filter_btm .type_floor_drop_box:has(.dropdown_parking_con){ overflow:visible !important; }
  body.catx-on .search_filter_btm .dropdown_parking_con{ width:100% !important; overflow:visible !important; }
  body.catx-on .search_filter_btm .dropdown_parking_con > div{ display:flex !important; align-items:center !important; gap:4px !important; width:100% !important; flex-wrap:nowrap !important; }
  body.catx-on .search_filter_btm .dropdown_parking_con .dropdown{ flex:0 0 auto !important; }
  body.catx-on .search_filter_btm .dropdown_parking_con .search_selectbox{ margin-right:0 !important; }
  body.catx-on .search_filter_btm .dropdown_parking_con .input_span_box{ flex:1 1 0 !important; min-width:0 !important; display:flex !important; align-items:center !important; }
  body.catx-on .search_filter_btm .dropdown_parking_con .input_span_box input{ flex:1 1 0 !important; width:auto !important; min-width:0 !important; }
  /* ⓐ-7 [모바일 필터] 전체필터 상/하단 디자인 정리(시안): 헤더 = 회색박스 없는 뒤로아이콘 + 정중앙 굵은 타이틀 + 핑크 아웃라인 '초기화' 알약,
     푸터 = 흰 바 + 상단 구분 + 큰 파랑 라운드 검색버튼(하단 앵커로 위로 성장, 늘어난 만큼 스크롤 하단 여백 보정). */
  body.catx-on .search_filter_btm.on .search_filter_all.box_title{ display:flex !important; align-items:center !important; justify-content:space-between !important; height:54px !important; padding:0 12px !important; background:var(--cx-card) !important; box-shadow:0 2px 8px rgba(0,0,0,.05) !important; position:relative !important; z-index:2 !important; }
  body.catx-on .search_filter_btm.on .box_title .close_topbtn{ width:34px !important; height:34px !important; background:transparent !important; border-radius:9px !important; margin:0 !important; display:inline-flex !important; align-items:center !important; justify-content:center !important; flex:0 0 auto !important; }
  body.catx-on .search_filter_btm.on .box_title .close_topbtn i{ font-size:21px !important; color:var(--cx-strong) !important; }
  body.catx-on .search_filter_btm.on .box_title .title{ position:absolute !important; left:50% !important; top:50% !important; transform:translate(-50%,-50%) !important; margin:0 !important; height:auto !important; width:auto !important; font-size:16px !important; font-weight:700 !important; letter-spacing:-.2px !important; color:var(--cx-strong) !important; }
  body.catx-on .search_filter_btm.on .box_title .filter_reset{ display:inline-flex !important; align-items:center !important; gap:4px !important; height:30px !important; padding:0 12px !important; background:rgba(234,15,83,.06) !important; border:1px solid rgba(234,15,83,.35) !important; border-radius:15px !important; color:#ea0f53 !important; font-size:var(--dash-font-12_5, 12.5px) !important; font-weight:600 !important; flex:0 0 auto !important; }
  body.catx-on .search_filter_btm.on .box_title .filter_reset i{ font-size:var(--dash-font-12, 12px) !important; color:#ea0f53 !important; }
  body.catx-on .search_filter_btm.on .box_title .filter_reset span{ color:#ea0f53 !important; font-weight:600 !important; }
  body.catx-on .search_filter_btm.on .all_filterbtn_wrap_mobile{ top:auto !important; height:auto !important; padding:12px 14px calc(12px + env(safe-area-inset-bottom)) !important; background:var(--cx-card) !important; box-shadow:0 -3px 12px rgba(0,0,0,.06) !important; z-index:20 !important; }
  body.catx-on .search_filter_btm.on .mobile_filter_keyword_block{ display:block !important; width:100% !important; order:9999 !important; flex:0 0 100% !important; clear:both !important; }
  body.catx-on .search_filter_btm.on .mobile_filter_keyword_block .mobile_filter_keyword{ height:30px !important; border:1px solid var(--cx-line2) !important; border-radius:5px !important; background:var(--cx-card) !important; }
  body.catx-on .search_filter_btm.on .mobile_filter_keyword_block input{ height:28px !important; padding:0 10px !important; background:transparent !important; color:var(--cx-strong) !important; font-size:13px !important; }
  body.catx-on .search_filter_btm.on .mobile_filter_keyword_block input::placeholder{ color:var(--cx-muted) !important; }
  body.catx-on .search_filter_btm.on .mobile_filter_keyword_block .mobile_filter_keyword_btn{ height:28px !important; flex-basis:36px !important; width:36px !important; border-left:1px solid var(--cx-line2) !important; background:transparent !important; color:var(--cx-accent) !important; }
  body.catx-on .search_filter_btm.on .mobile_filter_keyword_block .mobile_filter_keyword_btn i{ color:var(--cx-accent) !important; font-size:13px !important; }
  body.catx-on .search_filter_btm.on .all_filterbtn_wrap_mobile .all_filter_confirm.filter_ok{ float:none !important; width:100% !important; height:42px !important; display:flex !important; align-items:center !important; justify-content:center !important; gap:7px !important; border-radius:12px !important; background:var(--cx-accent) !important; border:0 !important; color:#fff !important; font-size:15px !important; font-weight:700 !important; box-shadow:0 4px 12px color-mix(in oklab, var(--cx-accent) 32%, transparent) !important; }
  body.catx-on .search_filter_btm.on .all_filterbtn_wrap_mobile .filter_ok i{ font-size:15px !important; color:#fff !important; margin:0 !important; }
  body.catx-on .search_filter_btm.on .all_filterbtn_wrap_mobile .filter_ok span{ color:#fff !important; font-weight:700 !important; font-size:15px !important; }
  body.catx-on .search_filter_btm.on .form_box{ padding-bottom:calc(150px + env(safe-area-inset-bottom)) !important; } /* 하단 앵커에 마지막 필터 항목이 가리지 않게 스크롤 여백 확보. */
  /* 열린 오버레이는 전체화면: 상단 코너 라운드/내부 2px 패딩(PC 인라인 필터용) 제거해 상단 노치 없이 화면 끝까지 채움. id 특이도로 base override. */
  body.catx-on #searchConsoleTop.search_filter_btm.on{ border-radius:0 !important; padding:0 !important; }
  /* ⓐ-3 [모바일 액션바] PC 일반형 버튼을 이동/그룹화한 카드 액션바(시안: 매물광고 + 2줄 + 수정/삭제). 라이트/다크 토큰. */
  body.catx-on .item_table_mobile .cxmab{ display:flex !important; flex-direction:column !important; gap:6px !important; margin-top:3px !important; }
  body.catx-on .item_table_mobile .cxmab-row{ display:flex !important; align-items:center !important; gap:4px !important; flex-wrap:nowrap !important; }
  body.catx-on .item_table_mobile .cxmab-grp{ display:flex !important; align-items:center !important; gap:4px !important; flex-wrap:nowrap !important; flex:1 1 auto !important; min-width:0 !important; }
  body.catx-on .item_table_mobile .cxmab-btn{ display:inline-flex !important; align-items:center !important; justify-content:center !important; gap:2px !important; height:25px !important; padding:0 6px !important; margin:0 !important; border:1px solid var(--cx-line2) !important; border-radius:6px !important; background:var(--cx-card) !important; color:var(--cx-body) !important; font-size:var(--dash-font-11, 11px) !important; font-weight:500 !important; line-height:1 !important; white-space:nowrap !important; cursor:pointer !important; box-shadow:none !important; float:none !important; width:auto !important; min-width:0 !important; flex:0 1 auto !important; box-sizing:border-box !important; text-decoration:none !important; }
  body.catx-on.catx-light .item_table_mobile .cxmab-btn:not(.cxmab-ad):not(.cxmab-deal-done){ background:#fff !important; }
  body.catx-on .item_table_mobile .cxmab-btn i{ margin:0 !important; padding:0 !important; font-size:var(--dash-font-10, 10px) !important; position:static !important; float:none !important; line-height:1 !important; }
  body.catx-on .item_table_mobile .cxmab-cvt{ display:none !important; } /* 모바일: 드롭다운 화살표 제거(좁은 화면 버튼 잘림 방지) */
  /* 매물광고: 카드 우측 상단 소형 오버레이(absolute) — 매물정보를 밀지 않음. 번호/제목이 길면 그 위를 덮음. */
  body.catx-on .item_table_mobile .item_info_box_L{ position:relative !important; }
  /* [catx 모바일] 상단 헤더 줄: 매물번호(+원본/자체) 좌측 · 매물광고 우측, 전체폭 한 줄(사진 위) */
  body.catx-on .item_table_mobile .cxm-header{ display:flex !important; align-items:center !important; justify-content:space-between !important; gap:8px !important; width:100% !important; margin:0 0 4px !important; padding:0 !important; }
  body.catx-on .item_table_mobile .cxm-header-num{ display:flex !important; align-items:center !important; flex-wrap:wrap !important; gap:4px 6px !important; min-width:0 !important; flex:1 1 auto !important; }
  body.catx-on .item_table_mobile .cxm-header-num .item_num_box_wrap{ margin:0 !important; }
  body.catx-on .item_table_mobile .cxm-header .cxmab-ad{ position:static !important; margin:0 !important; z-index:auto !important; height:24px !important; padding:0 8px !important; background:var(--cx-accent) !important; border-color:var(--cx-accent) !important; color:#fff !important; font-weight:600 !important; font-size:var(--dash-font-10_5, 10.5px) !important; flex:0 0 auto !important; }
  body.catx-on .item_table_mobile .cxmab-ad{ height:24px !important; padding:0 8px !important; margin:0 !important; background:var(--cx-accent) !important; border-color:var(--cx-accent) !important; color:#fff !important; font-weight:600 !important; font-size:var(--dash-font-10_5, 10.5px) !important; flex:0 0 auto !important; }
  body.catx-on .item_table_mobile .cxmab-ad i{ color:#fff !important; }
  body.catx-on .item_table_mobile .cxmab-ad img{ height:12px !important; width:auto !important; margin-right:3px !important; vertical-align:middle !important; filter:brightness(0) invert(1); }
  body.catx-on .item_table_mobile .cxmab-edit{ margin-left:auto !important; color:#1f9d63 !important; border-color:#a7e0c6 !important; width:auto !important; min-width:48px !important; padding:0 7px !important; gap:4px !important; flex:0 0 auto !important; }
  body.catx-on .item_table_mobile .cxmab-edit i{ color:#1f9d63 !important; }
  body.catx-on .item_table_mobile .cxmab-del{ margin-left:auto !important; color:var(--cx-red) !important; border-color:#f2b8ba !important; width:auto !important; min-width:48px !important; padding:0 7px !important; gap:4px !important; flex:0 0 auto !important; }
  body.catx-on .item_table_mobile .cxmab-del i{ color:var(--cx-red) !important; }
  /* 거래완료(계약완료) 버튼: 기존처럼 빨강 + '완료 YY.MM.DD'. 흰배경 override에서 제외됨(위 :not) */
  body.catx-on .item_table_mobile .cxmab-deal-done{ background:#da0000 !important; border-color:#da0000 !important; color:#fff !important; flex:0 0 auto !important; }
  body.catx-on .item_table_mobile .cxmab-deal-done i{ color:#fff !important; }
  /* 버튼 좌측 아이콘(SVG) 정렬 */
  body.catx-on .item_table_mobile .cxmab-ic{ display:inline-flex !important; align-items:center !important; margin-right:1px !important; }
  body.catx-on .item_table_mobile .cxmab-ic svg{ display:block !important; }
  body.catx-on .item_table_mobile .cxmab-dd{ position:relative !important; display:inline-flex !important; flex:0 1 auto !important; }
  body.catx-on .item_table_mobile .cxmab-ddmenu{ display:none; position:absolute; top:31px; left:0; z-index:60; min-width:100px; background:var(--cx-panel); border:1px solid var(--cx-line2); border-radius:8px; box-shadow:0 6px 18px rgba(0,0,0,.16); padding:5px; }
  body.catx-on .item_table_mobile .cxmab-dd.open .cxmab-ddmenu{ display:block; }
  body.catx-on .item_table_mobile .cxmab-dditem{ display:block !important; padding:8px 10px !important; margin:0 !important; border:0 !important; border-radius:6px !important; font-size:var(--dash-font-12_5, 12.5px) !important; color:var(--cx-body) !important; white-space:nowrap !important; background:transparent !important; text-align:left !important; float:none !important; width:auto !important; height:auto !important; box-shadow:none !important; cursor:pointer !important; }
  body.catx-on .item_table_mobile .cxmab-dditem:hover{ background:var(--cx-hover-bg) !important; }
  body.catx-on .item_table_mobile .cxmab-dditem i{ margin-right:5px !important; }
  /* 네비/계약 기존 부트스트랩 드롭다운 — 내부 토글(.btn 회색bg·h34·pad12·radius4)을 무력화해 다른 pill과 정합 */
  body.catx-on .item_table_mobile .cxmab-native{ position:relative !important; padding:0 !important; }
  body.catx-on .item_table_mobile .cxmab-native > .dropdown-toggle{ background:transparent !important; border:0 !important; border-radius:0 !important; padding:0 6px !important; margin:0 !important; height:100% !important; min-height:0 !important; font-size:var(--dash-font-11, 11px) !important; font-weight:500 !important; color:inherit !important; line-height:1 !important; box-shadow:none !important; display:inline-flex !important; align-items:center !important; gap:2px !important; }
  body.catx-on .item_table_mobile .cxmab-native > .dropdown-toggle i{ font-size:var(--dash-font-10_5, 10.5px) !important; margin:0 !important; }
  body.catx-on .item_table_mobile .cxmab-native > .dropdown-toggle::after{ display:none !important; content:'' !important; } /* 모바일: 화살표 제거 */
  /* 계약 버튼 색상 조건(PC 동일): 계약서 있음=파랑+개수배지 / 거래완료인데 없음=빨강 */
  body.catx-on .item_table_mobile .cxmab-contract-has{ border-color:var(--cx-accent) !important; color:var(--cx-accent) !important; }
  body.catx-on .item_table_mobile .cxmab-contract-warn{ border-color:var(--cx-red) !important; color:var(--cx-red) !important; }
  body.catx-on .item_table_mobile .cxmab-ccnt{ display:inline-flex !important; align-items:center !important; justify-content:center !important; min-width:14px !important; height:14px !important; padding:0 3px !important; margin-left:3px !important; border-radius:8px !important; background:var(--cx-accent) !important; color:#fff !important; font-size:var(--dash-font-9, 9px) !important; font-weight:700 !important; line-height:1 !important; }
  /* 계약서 1건 = ✓ 표시(파랑 체크) */
  body.catx-on .item_table_mobile .cxmab-ccheck{ margin-left:3px !important; font-size:var(--dash-font-12, 12px) !important; font-weight:800 !important; line-height:1 !important; color:var(--cx-accent) !important; }
  /* 계약/네비 네이티브 드롭다운 패널 — 커스텀 패널(업무/분석)과 동일 catx 스타일 */
  body.catx-on .item_table_mobile .cxmab-native > .dropdown-menu{ top:29px !important; left:0 !important; right:auto !important; min-width:100px !important; width:auto !important; background:var(--cx-panel) !important; border:1px solid var(--cx-line2) !important; border-radius:8px !important; box-shadow:0 6px 18px rgba(0,0,0,.16) !important; padding:5px !important; margin:0 !important; }
  body.catx-on .item_table_mobile .cxmab-native > .dropdown-menu > li{ list-style:none !important; }
  body.catx-on .item_table_mobile .cxmab-native > .dropdown-menu > li > a{ display:flex !important; align-items:center !important; gap:7px !important; padding:8px 10px !important; border-radius:6px !important; font-size:var(--dash-font-12_5, 12.5px) !important; color:var(--cx-body) !important; white-space:nowrap !important; background:transparent !important; line-height:1.2 !important; }
  body.catx-on .item_table_mobile .cxmab-native > .dropdown-menu > li > a:hover,
  body.catx-on .item_table_mobile .cxmab-native > .dropdown-menu > li > a:focus{ background:var(--cx-hover-bg) !important; color:var(--cx-strong) !important; }
  body.catx-on .item_table_mobile .cxmab-native > .dropdown-menu > li > a i{ margin:0 !important; width:15px !important; text-align:center !important; font-size:var(--dash-font-12, 12px) !important; }
  body.catx-on .item_table_mobile .cxmab-native > .dropdown-menu > li > a img{ width:15px !important; height:15px !important; object-fit:contain !important; margin:0 !important; }
  body.catx-on .item_table_mobile .cxmab-native > .dropdown-menu > li.divider{ height:1px !important; margin:4px 6px !important; padding:0 !important; overflow:hidden !important; background:var(--cx-line2) !important; }
  body.catx-on .item_table_mobile .cxmab-native > .dropdown-menu > li > a.cxmab-ccview{ color:var(--cx-accent) !important; font-weight:600 !important; }
  /* 커스텀 드롭다운(업무/분석) 항목 좌측 아이콘 정렬 + NEW 배지 인라인화(항목 밖으로 넘치던 absolute 제거) */
  body.catx-on .item_table_mobile .cxmab-dditem{ position:relative !important; display:flex !important; align-items:center !important; }
  body.catx-on .item_table_mobile .cxmab-dditem .cxmab-ic{ margin-right:6px !important; }
  body.catx-on .item_table_mobile .cxmab-dditem span[style*="absolute"],
  body.catx-on .item_table_mobile .cxmab-dditem .ai_new_badge{ position:static !important; top:auto !important; right:auto !important; margin-left:6px !important; display:inline-block !important; vertical-align:middle !important; }
  /* ⓑ 다크 한정: 중성 기능버튼 흰bg → 다크 칩(surface), 검정글자 → 밝게. 상태색은 유지(제외).
        ※ !important 미사용 — 앱 중성 규칙(.info_btn_wraps .info_btn, 특이도 0,2,0·non-important)을
        높은 특이도로만 이김. 상태 규칙(완료일/매물광고 active 등, 더 높은 특이도)은 그대로 이김. */
  body.catx-on:not(.catx-light) .item_table_mobile .info_btn:not(.deal_status):not(.deal_done),
  body.catx-on:not(.catx-light) .item_table_mobile .mrk_btn:not(.on):not(.active),
  body.catx-on:not(.catx-light) .item_table_mobile .btn_list_copy,
  body.catx-on:not(.catx-light) .item_table_mobile .mrk_btn .btn.dropdown-toggle{ background-color:var(--cx-chip); border-color:var(--cx-line2); color:var(--cx-body); }
  /* ⓒ 수정/삭제 아이콘 버튼: 배경만 다크칩, 아이콘 상태색(초록/빨강) 유지 */
  body.catx-on:not(.catx-light) .item_table_mobile .edit_and_remove .btn{ background-color:var(--cx-chip); border-color:var(--cx-line2); }
  body.catx-on:not(.catx-light) .item_table_mobile .edit_and_remove .btn_remove i{ color:var(--cx-red); }
  /* 14. 툴바 개수/정렬 안쪽 좌우 여백 확대(3px→10px, 답답함 해소) */
  body.catx-on .admin_itemList .item_num.badge{ padding-left:10px; padding-right:10px; }
  body.catx-on .admin_itemList .align_dropdown .btn_dropdown{ padding-left:10px; padding-right:10px; }
  /* 15. 키워드 검색 조인그룹 외곽 radius 를 버튼과 동일(7px)로 */
  body.catx-on .admin_itemList #d_keyword_mo,
  body.catx-on .admin_itemList #item_id_temp_mo{ border-radius:7px 0 0 7px; }
  body.catx-on .admin_itemList .admin_search_group .btn_search,
  body.catx-on .admin_itemList .admin_search_group .input-group .btn-default{ border-radius:0 7px 7px 0; }
  /* 16. 전체필터 '검색하기' 버튼 → 파랑(accent)로 (기존 red 계열) */
  body.catx-on .search_filter_btm .all_filter_confirm,
  body.catx-on .search_filter_btm .filter_ok{ background:var(--cx-accent); border-color:var(--cx-accent); }
  /* 17. 멀티선택 칩 크기·색상 통일 — 실제 보이는 칩: 매물종류/테마/라벨/옵션=`.check_select .ellipsis`,
        거래유형=`.d_types`. 높이/패딩/폰트/라운드 통일(앱 인라인 이겨야 해 !important 사용). */
  body.catx-on .search_filter_btm.on .check_select .ellipsis,
  body.catx-on .search_filter_btm.on .d_types{ height:28px !important; min-height:28px !important; line-height:26px !important; padding:0 10px !important; font-size:13px !important; border-radius:5px !important; display:inline-flex !important; align-items:center !important; justify-content:center !important; }
  /* 다크: 두 칩 모두 동일 톤(surface/글자/테두리). 라이트는 앱 기본(옅은 회색) 유지 */
  body.catx-on:not(.catx-light) .search_filter_btm.on .check_select .ellipsis,
  body.catx-on:not(.catx-light) .search_filter_btm.on .d_types{ background-color:var(--cx-chip); border-color:var(--cx-line2); color:var(--cx-body); }
  /* [모바일] 상단 필터/툴바(개수·정렬·필터·매물등록·검색) 흰색 패널 — 화면 전체 폭 + 앱헤더에 밀착(상단/좌우 gap 0).
     ⚠️ admin_main_wrap이 overflow:hidden(이중스크롤 락)이라 헤더 음수마진 full-bleed는 잘림 + 음수마진-top은 상단 페인트를 막음
     → admin_main_wrap 패딩 자체를 0(상하좌우)으로 해서 헤더가 자연히 전체폭·상단밀착이 되게 하고, 카드 목록(mobile_list)에만 안쪽 패딩(상12·좌우14·하14)으로 정렬/간격. html 접두는 뒤쪽 padding:14px 규칙 특이도 초과용. */
  html body.catx-on.catx-light #admin_wrap .admin_main_wrap:has(.admin_itemList),
  html body.catx-on:not(.catx-light) #admin_wrap .admin_main_wrap:has(.admin_itemList){ padding:0 !important; }
  body.catx-on .admin_itemList .item_header.item_header_mobile{ background:#f8fafc !important; border-radius:0 !important; margin:0 !important; width:auto !important; max-width:none !important; padding:12px 14px !important; box-sizing:border-box !important; }
  body.catx-on .item_table_mobile .mobile_list{ padding:12px 14px 14px !important; box-sizing:border-box !important; }
  body.catx-on:not(.catx-light) .admin_itemList .item_header.item_header_mobile{ background:var(--cx-panel) !important; }
  /* 18. [모바일] 상단 툴바(개수·정렬·필터·매물등록·검색) 전체 크기 축소 — 높이/폰트/여백 슬림화 */
  body.catx-on .admin_itemList .item_header_mobile .item_num.badge,
  body.catx-on .admin_itemList .item_header_mobile .align_dropdown .btn_dropdown,
  body.catx-on .admin_itemList .item_header_mobile .mobile_search_btn,
  body.catx-on .admin_itemList .item_header_mobile .insert_btn,
  body.catx-on .admin_itemList .item_header_mobile .admin_search_group .input-group,
  body.catx-on .admin_itemList .item_header_mobile .admin_search_group .form-control,
  body.catx-on .admin_itemList .item_header_mobile .admin_search_group .btn_search,
  body.catx-on .admin_itemList .item_header_mobile .admin_search_group .input-group .btn-default{
    height:29px !important; min-height:29px !important; font-size:var(--dash-font-12_5, 12.5px) !important; }
  body.catx-on .admin_itemList .item_header_mobile .align_dropdown .btn_dropdown,
  body.catx-on .admin_itemList .item_header_mobile .mobile_search_btn,
  body.catx-on .admin_itemList .item_header_mobile .insert_btn{ padding-top:0 !important; padding-bottom:0 !important; line-height:27px !important; }
  body.catx-on .admin_itemList .item_header_mobile .insert_btn{ padding-left:9px !important; padding-right:9px !important; }
  body.catx-on .admin_itemList .item_header_mobile .admin_search_group .form-control{ padding-top:0 !important; padding-bottom:0 !important; }
  /* 19. [모바일] 개수 배지 → PC(item_header_pc)와 동일 스타일: accent pill + 숫자 크게/굵게(콜론 제거는 header JS) */
  body.catx-on .admin_itemList .item_header_mobile .item_num.badge{ border-radius:7px !important; border:0 !important; font-weight:600 !important; display:inline-flex !important; align-items:center !important; box-sizing:border-box !important; padding-left:10px !important; padding-right:10px !important; }
  body.catx-on .admin_itemList .item_header_mobile .item_num.badge .all_cnt{ font-size:15px !important; font-weight:800 !important; margin:0 1px 0 2px !important; letter-spacing:.2px !important; }
  /* 개수 배지: inline-flex 박스가 내부 텍스트보다 좁아져 파란 배경이 글자 끝('개')에서 잘리던 문제
   * → 내용 폭을 그대로 쓰도록 강제(부모 폭/축소 제약 무효화). 크기·색은 위 규칙 그대로. */
  body.catx-on .admin_itemList .item_header_mobile .item_num.badge{ width:max-content !important; min-width:0 !important; max-width:100% !important; flex:0 0 auto !important; white-space:nowrap !important; overflow:visible !important; }
  body.catx-on .admin_itemList .item_header_mobile .item_num.badge > *{ flex:0 0 auto !important; }
  /* 20. [모바일] 상단 툴바 주변 여백 축소 — #admin_wrap 이 상단바 높이를 이미 확보하므로
        매물목록 래퍼의 추가 상단 패딩은 두지 않는다. 좌우/하단 패딩과 필터 내부 여백은 유지한다. */
  body.catx-on.catx-light #admin_wrap .admin_main_wrap:has(.admin_itemList),
  body.catx-on:not(.catx-light) #admin_wrap .admin_main_wrap:has(.admin_itemList){ padding-top:0 !important; }
  body.catx-on .admin_itemList .item_header_L > .admin_search_group{ margin-top:3px !important; }
  body.catx-on .admin_itemList .item_table_mobile{ margin-top:4px !important; }
  /* 21. [모바일] 하단 빈 공간 제거 — 앱 기본 예약 여백(item_table_mobile padding-bottom:58) 제거.
        내부 스크롤 리스트 하단은 구조상 항상 고정 페이징 위(≈5px)에서 끝나 겹치지 않으므로 큰 예약이 불필요.
        최하단 스크롤 시 빈 띠로 보이던 문제 → 스크롤 영역 안쪽 여백을 최소(8px)로. */
  body.catx-on .item_table_mobile{ padding-bottom:0 !important; }
  body.catx-on .item_table_mobile .mobile_list{ padding-bottom:8px !important; }
  /* 22. [모바일] 정렬(수정일순/면적순…) 버튼 가로 폭 확대 */
  body.catx-on .admin_itemList .item_header_mobile .align_dropdown .btn_dropdown{ min-width:82px !important; }
}
/* 검색·초기화 버튼(우측 .btn_box) — 스타일/색상/hover 개선만(크기·위치 유지). 기본=아웃라인(검색 accent/초기화 red), hover=색 채움+흰 아이콘 */
body.catx-on .search_filter_btm .btn_box .right_btn_01,
body.catx-on .search_filter_btm .btn_box .right_btn_02{ display:inline-flex !important; align-items:center !important; justify-content:center !important; box-shadow:none !important; transition: background .13s ease, border-color .13s ease, color .13s ease !important; }
body.catx-on .search_filter_btm .btn_box .right_btn_01{ background:transparent !important; border:1px solid var(--cx-accent) !important; }
body.catx-on .search_filter_btm .btn_box .right_btn_01 i{ color: var(--cx-accent) !important; }
body.catx-on .search_filter_btm .btn_box .right_btn_01:hover{ background: var(--cx-accent) !important; }
body.catx-on .search_filter_btm .btn_box .right_btn_01:hover i{ color:#fff !important; }
body.catx-on .search_filter_btm .btn_box .right_btn_02{ background:transparent !important; border:1px solid #d6336c !important; }
body.catx-on .search_filter_btm .btn_box .right_btn_02 i{ color: #d6336c !important; }
body.catx-on .search_filter_btm .btn_box .right_btn_02:hover{ background: #d6336c !important; }
body.catx-on .search_filter_btm .btn_box .right_btn_02:hover i{ color:#fff !important; }

/* ══════════════════════════════════════════════════════════════════
 *  [매물목록] 매물 테이블 — 구조 개선(헤더/구분선/행hover/선택행 톤). CSS만, 기능 무관.
 *  라이트 우선. 다크 배경 리테마(테이블 전체 어둡게)는 별도 대규모 작업 예정.
 * ══════════════════════════════════════════════════════════════════ */
/* 헤더 셀 */
body.catx-on .admin_itemList .item_table_pc thead th{ color: var(--cx-strong) !important; border-bottom:1px solid var(--cx-line2) !important; }
body.catx-on.catx-light .admin_itemList .item_table_pc thead th{ background:#eef3f9 !important; }
/* 행 구분선(td border-top #ddd → catx line) */
body.catx-on .admin_itemList .item_table_pc tbody td{ border-top-color: var(--cx-line2) !important; }
/* 조회수(.view_cnt_box) 과하게 강조됨(14px·진한남색) → 축소+옅게(부차정보, 사용자 요청) */
body.catx-on .admin_itemList .item_table_pc .view_cnt_box{ font-size:var(--dash-font-12, 12px) !important; color: var(--cx-sub) !important; font-weight:400 !important; }
/* 행 hover(라이트) */
body.catx-on.catx-light .admin_itemList .item_table_pc tbody > tr:hover{ background: rgba(77,141,255,.06) !important; }

/* 필터 우측 검색버튼: 테두리 검정↔아이콘 파랑 불일치 → 앱 ID규칙(#searchConsoleTop, 어두운 테두리 !important) 특이도로 넘겨 테두리도 accent 로 (아이콘과 일치) */
body.catx-on #searchConsoleTop .admin_item_right_box .btn_search.right_btn_01.right_btn_01{ border-color: var(--cx-accent) !important; }

/* ══════════════════════════════════════════════════════════════════
 *  [매물목록] 매물 테이블 — 다크모드 풀 리테마 (배경/텍스트/버튼 전부 어둡게, 의미 색배지는 유지). CSS만, 기능 무관.
 *  ※앱이 이 테이블을 라이트 전용으로 만들어 다크서 전체 흰배경이라, .admin_itemList(이 페이지 전용) 어둡게 + 요소별 다크화.
 * ══════════════════════════════════════════════════════════════════ */
body.catx-on:not(.catx-light) .admin_itemList{ background:#1b2531 !important; }
body.catx-on:not(.catx-light) .admin_itemList .item_table_pc thead th{ background:#243141 !important; color:#e6edf6 !important; border-bottom:1px solid rgba(190,214,240,.2) !important; }
body.catx-on:not(.catx-light) .admin_itemList .item_table_pc tbody td{ border-top-color: rgba(190,214,240,.14) !important; }
/* 텍스트 밝게 (기본/링크/클래스없는 span/가격·층정보/muted) */
body.catx-on:not(.catx-light) .admin_itemList .item_table_pc td{ color:#cdd8e6 !important; }
body.catx-on:not(.catx-light) .admin_itemList .item_table_pc td a{ color:#a9c4ec !important; }
body.catx-on:not(.catx-light) .admin_itemList .item_table_pc td span:not([class]),
body.catx-on:not(.catx-light) .admin_itemList .item_table_pc td font{ color:#cdd8e6 !important; }
body.catx-on:not(.catx-light) .admin_itemList .item_table_pc :is(.text_price_,.text_price_choice,.text_price_full_rent,.text_price_inst,.text_price_location,.text_price_month_rent,.text_price_sell),
body.catx-on:not(.catx-light) .admin_itemList .item_table_pc :is(.floor_info_box,.floor_info_center,.floor_info_end,.floor_info_input_wrap,.floor_info_satart,.arch_floor_info){ color:#cdd8e6 !important; }
body.catx-on:not(.catx-light) .admin_itemList .item_table_pc .text-muted{ color:#8b9bb0 !important; }
/* 버튼류(공유/업무/입장/매칭/고객/관심/복사/갱신·확인일·상태변경 등) 흰배경 → 다크칩 */
body.catx-on:not(.catx-light) .admin_itemList .item_table_pc .info_btn,
body.catx-on:not(.catx-light) .admin_itemList .item_table_pc .mrk_btn,
body.catx-on:not(.catx-light) .admin_itemList .item_table_pc td .btn,
body.catx-on:not(.catx-light) .admin_itemList .item_table_pc td button{ background:#2a3644 !important; border-color:rgba(190,214,240,.2) !important; color:#cdd8e6 !important; }
/* 거래상태 라벨 / 필수입력 경고 배경 다크화(상태·경고 색 글자는 유지) */
body.catx-on:not(.catx-light) .admin_itemList .item_table_pc .deal_status{ background:#2a3644 !important; }
body.catx-on:not(.catx-light) .admin_itemList .item_table_pc .xl_req_mark{ background: rgba(255,120,140,.14) !important; }
/* [필수입력부족] 배지를 썸네일 칸 아래로 이동(리오거나이저) + 썸네일 폭에 맞춤 */
body.catx-on.catx-list-normal .list_table_pc_zone tr[data-id] .catx-c-thumb{ vertical-align:top !important; }
/* 썸네일 잘림 수정: 일반 셀 패딩(td:not(.cxab-cell){padding:0 6px}, 특이도 0,6,5)이 70px 이미지를 72px 셀 밖으로 밀어 우측이 overflow:hidden에 4px 잘림 → 썸네일 셀만 좌우패딩 1px(70px가 72px에 정확히 수납). td.catx-c-thumb.text-center 로 일반규칙 이김(하단 10px 여백은 유지). */
body.catx-on.catx-list-normal table.list_table_pc_zone > tbody > tr[data-id] > td.catx-c-thumb.text-center{ padding-left:1px !important; padding-right:1px !important; }
/* 배지 margin-top은 마진상쇄로 무시됨 → 사진(img_ratio) 하단 여백으로 간격 확보 */
body.catx-on.catx-list-normal .list_table_pc_zone tr[data-id] .catx-c-thumb:has(.xl_req_mark.cxab-reqmoved) .img_ratio_4x3{ margin-bottom:7px !important; }
body.catx-on.catx-list-normal .list_table_pc_zone tr[data-id] .catx-c-thumb .xl_req_mark.cxab-reqmoved{ position:static !important; display:flex !important; align-items:center !important; justify-content:center !important; gap:3px !important; width:70px !important; max-width:70px !important; margin:0 !important; padding:3px 3px !important; box-sizing:border-box !important; border-radius:5px !important; white-space:nowrap !important; overflow:hidden !important; } /* 폭=썸네일(.img_ratio_4x3 70px)과 동일(셀 좌우패딩 탓 width:100%면 60px라 좁았음) */
body.catx-on.catx-list-normal .list_table_pc_zone tr[data-id] .catx-c-thumb .xl_req_mark.cxab-reqmoved i{ font-size:var(--dash-font-10, 10px) !important; }
body.catx-on.catx-list-normal .list_table_pc_zone tr[data-id] .catx-c-thumb .xl_req_mark.cxab-reqmoved .xl_req_label{ display:inline !important; font-size:var(--dash-font-9_5, 9.5px) !important; font-weight:600 !important; }
/* 행 hover(다크) */
body.catx-on:not(.catx-light) .admin_itemList .item_table_pc tbody > tr:hover{ background: rgba(120,160,230,.07) !important; }

/* ── 매물목록 페이지: 3영역 카드 레이아웃(필터 / 툴바 / 목록) — 사용자 요청(참고화면처럼 구분).
 *    회색 페이지 위에 흰(라이트)/패널(다크) 카드 3개로 명확히 나눔. 페이지 한정 :has(.admin_itemList).
 *    대상: .search_filter_btm(필터) / .admin_itemList .item_header_pc(툴바) / .admin_itemList .item_table_pc(목록).
 *    카테고리형(catx)에서 일반 목록형·엑셀 목록형 공통 셸(필터/툴바/테이블 컨테이너)이라 둘 다 동일 적용. ── */
/* 페이지 배경(카드 분리용 회색/다크) + 바깥 여백 */
body.catx-on:not(.catx-light) #admin_wrap .admin_main_wrap:has(.admin_itemList){ background-color:#141a22 !important; padding:14px !important; }
body.catx-on.catx-light #admin_wrap .admin_main_wrap:has(.admin_itemList){ background-color:var(--cx-page-solid) !important; padding:14px !important; }
@media (min-width:993px){
	html body.catx-on.catx-light #admin_wrap .admin_main_wrap:has(.admin_itemList),
	html body.catx-on:not(.catx-light) #admin_wrap .admin_main_wrap:has(.admin_itemList){ padding-top:0 !important; }
	/* PC 매물목록은 래퍼 상단 패딩을 제거해도 첫 카드 앞에 20px 위치 오프셋이 남는다.
	 * 좌우 외곽 여백(14px)과 맞도록 필터 카드의 외부 위치만 6px 당긴다.
	 * 필터 내부(.admin_item_left_box) 10px 패딩은 그대로 유지한다. */
	html body.catx-on #admin_wrap .admin_main_wrap:has(.admin_itemList) > #searchConsoleTop.search_filter_btm{
		margin-top:-6px !important;
	}
}
/* 리스트 섹션 래퍼는 투명(자식 툴바/목록이 각각 카드) */
body.catx-on #admin_wrap .admin_itemList{ background:transparent !important; padding:0 !important; }
/* 카드 공통(테두리/라운드/그림자) — 필터·목록만 카드. 툴바(item_header_pc)는 배경 없이 회색 페이지 위에(사용자 요청) */
body.catx-on .search_filter_btm,
body.catx-on .admin_itemList .item_table_pc{ border:1px solid var(--cx-line) !important; border-radius:12px !important; box-shadow:0 1px 3px rgba(16,40,70,.05) !important; box-sizing:border-box !important; }
/* 카드 배경(라이트=흰 / 다크=패널) */
body.catx-on.catx-light .search_filter_btm,
body.catx-on.catx-light .search_filter_btm .box_contents,
body.catx-on.catx-light .admin_itemList .item_table_pc,
body.catx-on.catx-light .admin_itemList .pagination_box{ background-color:#ffffff !important; }
body.catx-on:not(.catx-light) .search_filter_btm,
body.catx-on:not(.catx-light) .search_filter_btm .box_contents,
body.catx-on:not(.catx-light) .admin_itemList .item_table_pc{ background-color:#1b2531 !important; }
/* 툴바: 카드 배경/테두리 제거 → 회색 페이지 위에 그대로(사용자 요청). margin 만 유지해 필터/목록과 간격 */
body.catx-on.catx-light .admin_itemList .item_header_pc,
body.catx-on:not(.catx-light) .admin_itemList .item_header_pc{ background:transparent !important; background-color:transparent !important; }
/* 카드 간격/내부 여백 (필터는 #searchConsoleTop id 규칙(padding:0)을 특이도로 넘김) */
body.catx-on .search_filter_btm{ margin-bottom:12px !important; }
body.catx-on #searchConsoleTop.search_filter_btm{ padding:2px 2px !important; } /* 상하좌우 모두 필터 자체 내부여백(세로~11·가로 .filter_content 10px)이 있어 이중 → 내 패딩 최소화(인셋 상하좌우 ~13px 균형). 사용자: 여백 두번 들어가 넓음 */
/* 필터 내부 .box_contents 앱 기본 테두리(#ddd) 제거 — 카드 테두리와 이중이라 불필요(사용자 요청) */
body.catx-on .search_filter_btm .box_contents{ border:0 !important; border-radius:0 !important; }
/* PC 매물목록: 안쪽 배경이 카드의 12px 곡선 밖으로 보이지 않도록 3px 인셋만큼 반경을 맞춘다. */
@media (min-width:993px){
	body.catx-on #searchConsoleTop.search_filter_btm:not(.on) .box_contents{ border-radius:9px !important; }
}
body.catx-on .admin_itemList .item_header_pc{ margin-bottom:12px !important; padding:0 !important; border:0 !important; box-shadow:none !important; border-radius:0 !important; }
/* 일반형 PC 목록: 툴바 아래 1px + 목록 안쪽 12px + 카드 테두리 1px = 첫 카드까지 14px. */
@media (min-width:993px){
	body.catx-on.catx-list-normal .admin_itemList > .item_header_pc{ margin-bottom:1px !important; }
}
body.catx-on .admin_itemList .item_table_pc{ padding:0 !important; margin-top:0 !important; } /* 앱 기본 margin-top:10px 제거 → 목록 간격은 위 툴바 margin과 내부 여백으로 제어 */
/* 목록 카드 모서리 라운드 — overflow:hidden 은 행 드롭다운(131개)을 자르므로 개별 라운드로 처리 */
body.catx-on .admin_itemList .item_table_pc thead tr th:first-child{ border-top-left-radius:12px !important; }
body.catx-on .admin_itemList .item_table_pc thead tr th:last-child{ border-top-right-radius:12px !important; }
body.catx-on .admin_itemList .item_table_pc .pagination_box{ border-radius:0 0 12px 12px !important; border-top:1px solid var(--cx-line) !important; }
/* ── PC 매물목록: 페이지 전체 스크롤 대신 목록(테이블)만 내부 스크롤(사용자 요청) ──
 * 뷰포트 높이(-헤더 68px)로 고정 → 필터/툴바 고정, .admin_table_box 만 스크롤, 페이지네이션 하단 노출.
 * 이 flex 셸은 PC 테이블 전용이다. 모바일까지 적용하면 블록 흐름과 마진 상쇄가 바뀌어
 * 상단바와 모바일 툴바 사이에 빈 공간이 생기므로 데스크톱에서만 활성화한다. */
@media (min-width:993px){
	body.catx-on #admin_wrap .admin_main_wrap:has(.admin_itemList){ height:calc(100vh - 68px) !important; overflow:hidden !important; display:flex !important; flex-direction:column !important; }
	body.catx-on .admin_main_wrap:has(.admin_itemList) > .search_filter_btm{ flex:0 0 auto !important; }
	body.catx-on .admin_main_wrap:has(.admin_itemList) > .admin_itemList{ flex:1 1 auto !important; min-height:0 !important; display:flex !important; flex-direction:column !important; overflow:hidden !important; }
	body.catx-on .admin_itemList > .item_header_pc{ flex:0 0 auto !important; }
	body.catx-on .admin_itemList > .item_table_pc{ flex:1 1 auto !important; min-height:0 !important; display:flex !important; flex-direction:column !important; overflow:hidden !important; }
	body.catx-on .item_table_pc > .admin_table_box{ flex:1 1 auto !important; min-height:0 !important; overflow-y:auto !important; }
	/* [매물목록 카드] 일반형: 가로폭이 min-width(1200) 미만이면 가로 스크롤 */
	body.catx-on.catx-list-normal .item_table_pc > .admin_table_box{ overflow-x:auto !important; }
	body.catx-on .item_table_pc > .pagination_box{ flex:0 0 auto !important; }
}
/* CATX 일반형 한 행은 액션 메뉴까지 포함해 약 360개 노드이고 30개 보기에서도
 * 목록 안에 1.2만 개가 넘는 노드가 생긴다. 내부 스크롤의 paint/layout 범위를
 * 페이지 전체와 분리하고, 연속 스크롤을 브라우저가 미리 준비하도록 힌트를 준다.
 * 스크롤 박스는 원래 overflow 로 내용을 자르므로 paint containment 로 인한 UI 잘림은 없다. */
@media (min-width:993px){
	body.catx-on.catx-list-normal .item_table_pc > .admin_table_box{
		contain:layout paint style !important;
		will-change:scroll-position;
	}
}
/* 모바일은 item_table_mobile을 사용하므로 PC 목록은 명시적으로 숨긴다. */
@media (max-width:992px){
  body.catx-on .admin_itemList > .item_table_pc{ display:none !important; }
}
/* 스크롤 시 컬럼 헤더 고정 */
body.catx-on .item_table_pc thead th{ position:sticky !important; top:0 !important; z-index:2 !important; }
/* 접힘 바가 어두워졌으니 라벨 밝게 + 토글 배경 투명 */
body.catx-on:not(.catx-light) .search_filter_btm.on .filter_title,
body.catx-on:not(.catx-light) .search_filter_btm.on .filter_title > span:first-child{ color:#e6edf6 !important; }
body.catx-on:not(.catx-light) .search_filter_btm .filter_top_btn{ background:transparent !important; }
/* 활성 항목 밑 흰선(앱 기본 a::after{content:"_"} 밑줄문자) 제거 — 라이트/다크 공통 */
body.catx-on .admin_itemList .pagination_box a::after,
body.catx-on .admin_itemList .pagination_box a::before{ content:none !important; display:none !important; }
/* 페이징 다크(활성=accent, 나머지=채워진 박스) */
body.catx-on:not(.catx-light) .pagination_box{ background:transparent !important; }
body.catx-on:not(.catx-light) .pagination_box a,
body.catx-on:not(.catx-light) .pagination_box button,
body.catx-on:not(.catx-light) .pagination_box li > *{ color:#cdd8e6 !important; border-color:rgba(190,214,240,.2) !important; background:transparent !important; }
body.catx-on:not(.catx-light) .pagination_box .active > *,
body.catx-on:not(.catx-light) .pagination_box .on > *,
body.catx-on:not(.catx-light) .pagination_box a.active,
body.catx-on:not(.catx-light) .pagination_box a.on{ background: var(--cx-accent) !important; color:#fff !important; border-color: var(--cx-accent) !important; }
/* 매물정보 정보박스(현재층/대지/전용, #eee) → 다크 */
body.catx-on:not(.catx-light) .admin_itemList .item_table_pc .item_list_area_wrap{ background:#222e3c !important; color:#cdd8e6 !important; }
/* 썸네일: background-color 만 지정(사진·no_img.gif 대체이미지 = 인라인 background-image 보존. shorthand 쓰면 이미지 사라짐!) */
body.catx-on:not(.catx-light) .admin_itemList .item_table_pc :is(.img_ratio_1x1,.img_ratio_4x3){ background-color:#2a3644 !important; }
/* 매물번호 앞 사이트 파비콘(.ico 이미지)은 색 변경 불가 → 다크서 어두운 로고가 안보임. 흰색 배경칩 얹어 항상 보이게(브라우저 탭 방식) */
body.catx-on:not(.catx-light) .admin_itemList .item_table_pc .item_num_type.num_type_img{ background:#fff !important; border-radius:4px !important; padding:2px !important; display:inline-flex !important; align-items:center !important; justify-content:center !important; box-sizing:border-box !important; line-height:0 !important; }
/* 복사 등 매물정보 액션버튼(.info_btn) 아이콘 밝게(다크서 안보이던 것) */
body.catx-on:not(.catx-light) .admin_itemList .item_table_pc .info_btn i{ color:#cdd8e6 !important; }
/* 우측 액션버튼(공유/업무/임장/매칭/고객/관심/복사/갱신 등) 아이콘 #102345 navy → 다크서 안보임, 밝게 */
body.catx-on:not(.catx-light) .admin_itemList .item_table_pc td .btn i,
body.catx-on:not(.catx-light) .admin_itemList .item_table_pc td button i,
body.catx-on:not(.catx-light) .admin_itemList .item_table_pc .mrk_btn i{ color:#cdd8e6 !important; }
/* 주소 옆 복사 링크 아이콘(.btn_AddressCopy = 사용자가 말한 "파비콘" ◯) color:#000 이라 다크서 안보임 → 강제 밝게 + 배경칩 */
body.catx-on:not(.catx-light) .admin_itemList .item_table_pc .btn_AddressCopy{ color:#a9c4ec !important; }
body.catx-on:not(.catx-light) .admin_itemList .item_table_pc .btn_AddressCopy:hover{ color:var(--cx-accent) !important; }

/* ── 하단 페이징 스타일 개선(참고 이미지대로: 넉넉한 라운드 박스·간격, 활성=네이비 채움) ── */
/* 크기·간격(라이트/다크 공통): 기존 24x26+음수마진(붙음) → 36x36 라운드9 + 좌우 3px 간격, 화살표도 동일 박스 */
/* ══ 페이징 공통(카테고리형 전용) ═══════════════════════════════════════════
 * 예전에는 매물목록(.admin_itemList .pagination_box)에만 박스형 스타일이 있고
 * 나머지 화면은 각 뷰가 .pagination>li>a 를 따로 정의해(83개 파일, 값은 12종)
 * 페이지마다 크기·색이 제각각이었다. 여기 한 곳으로 통일한다.
 *
 *   ul:is(.pagination,.pagination-sm,.customer_pagination,.pagination_meeting) → pagination / pagination-sm / pagination_pc /
 *   log_pagination / customer_pagination / pagination_meeting / analyze_pagination … 전부 포함
 *   범위는 #admin_wrap 과 .modal (모달 안 페이징도 동일 적용)
 *
 * 예외가 필요한 화면이 생기면 이 블록 아래에 개별 규칙을 덧붙이면 된다.
 * 노출 개수(PC 10 / 모바일 5) 제어는 CSS 가 아니라 JS 담당이라 영향 없다
 * (admin_header_category.php 의 cx_pagination_mobile). */
body.catx-on :is(#admin_wrap, .modal) ul:is(.pagination,.pagination-sm,.customer_pagination,.pagination_meeting){ margin:0 !important; padding:0 !important; gap:0 !important; }
body.catx-on :is(#admin_wrap, .modal) ul:is(.pagination,.pagination-sm,.customer_pagination,.pagination_meeting) > li{ margin:0 !important; padding:0 !important; }
body.catx-on :is(#admin_wrap, .modal) ul:is(.pagination,.pagination-sm,.customer_pagination,.pagination_meeting) > li > a,
body.catx-on :is(#admin_wrap, .modal) ul:is(.pagination,.pagination-sm,.customer_pagination,.pagination_meeting) > li > span{
	min-width:28px !important; height:28px !important; padding:0 7px !important; margin:0 3px !important;
	display:inline-flex !important; align-items:center !important; justify-content:center !important;
	box-sizing:border-box !important; border-radius:7px !important;
	font-size:13px !important; line-height:1 !important;
	/* 일부 화면(관리자·직원 목록 등)이 활성 페이지에 밑줄(text-decoration)을 넣는다 → 통일 스타일에서 제거 */
	text-decoration:none !important;
	transition: background .12s ease, color .12s ease, border-color .12s ease !important; }
/* 활성 항목 밑 밑줄문자 제거 — admin_style.php:559 의 .pagination>.active a:after{content:'_'} */
body.catx-on :is(#admin_wrap, .modal) ul:is(.pagination,.pagination-sm,.customer_pagination,.pagination_meeting) > li > a::after,
body.catx-on :is(#admin_wrap, .modal) ul:is(.pagination,.pagination-sm,.customer_pagination,.pagination_meeting) > li > a::before,
body.catx-on :is(#admin_wrap, .modal) ul:is(.pagination,.pagination-sm,.customer_pagination,.pagination_meeting) > li > span::after,
body.catx-on :is(#admin_wrap, .modal) ul:is(.pagination,.pagination-sm,.customer_pagination,.pagination_meeting) > li > span::before{ content:none !important; display:none !important; }

/* 라이트: 흰 박스·연한 테두리, 활성=accent 채움 */
body.catx-on.catx-light :is(#admin_wrap, .modal) ul:is(.pagination,.pagination-sm,.customer_pagination,.pagination_meeting) > li > a,
body.catx-on.catx-light :is(#admin_wrap, .modal) ul:is(.pagination,.pagination-sm,.customer_pagination,.pagination_meeting) > li > span{
	background:#fff !important; border:1px solid #e3e8f0 !important; color:#33415f !important; }
body.catx-on.catx-light :is(#admin_wrap, .modal) ul:is(.pagination,.pagination-sm,.customer_pagination,.pagination_meeting) > li > a:hover{
	background:#f2f6fc !important; border-color:#c3d0e6 !important; color:#1e3a63 !important; }
body.catx-on.catx-light :is(#admin_wrap, .modal) ul:is(.pagination,.pagination-sm,.customer_pagination,.pagination_meeting) > li.active > a,
body.catx-on.catx-light :is(#admin_wrap, .modal) ul:is(.pagination,.pagination-sm,.customer_pagination,.pagination_meeting) > li.active > span,
body.catx-on.catx-light :is(#admin_wrap, .modal) ul:is(.pagination,.pagination-sm,.customer_pagination,.pagination_meeting) > li.on > a,
body.catx-on.catx-light :is(#admin_wrap, .modal) ul:is(.pagination,.pagination-sm,.customer_pagination,.pagination_meeting) > li > a.active,
body.catx-on.catx-light :is(#admin_wrap, .modal) ul:is(.pagination,.pagination-sm,.customer_pagination,.pagination_meeting) > li > a.on{
	background:var(--cx-accent) !important; border-color:var(--cx-accent) !important; color:#fff !important; }

/* 다크: 선택 안 된 항목도 채워진 박스 */
body.catx-on:not(.catx-light) :is(#admin_wrap, .modal) ul:is(.pagination,.pagination-sm,.customer_pagination,.pagination_meeting) > li > a,
body.catx-on:not(.catx-light) :is(#admin_wrap, .modal) ul:is(.pagination,.pagination-sm,.customer_pagination,.pagination_meeting) > li > span{
	background:#243141 !important; border:1px solid rgba(190,214,240,.2) !important; color:#cdd8e6 !important; }
body.catx-on:not(.catx-light) :is(#admin_wrap, .modal) ul:is(.pagination,.pagination-sm,.customer_pagination,.pagination_meeting) > li > a:hover{
	background:#2a3644 !important; border-color:var(--cx-accent) !important; color:var(--cx-accent) !important; }
body.catx-on:not(.catx-light) :is(#admin_wrap, .modal) ul:is(.pagination,.pagination-sm,.customer_pagination,.pagination_meeting) > li.active > a,
body.catx-on:not(.catx-light) :is(#admin_wrap, .modal) ul:is(.pagination,.pagination-sm,.customer_pagination,.pagination_meeting) > li.active > span,
body.catx-on:not(.catx-light) :is(#admin_wrap, .modal) ul:is(.pagination,.pagination-sm,.customer_pagination,.pagination_meeting) > li.on > a,
body.catx-on:not(.catx-light) :is(#admin_wrap, .modal) ul:is(.pagination,.pagination-sm,.customer_pagination,.pagination_meeting) > li > a.active,
body.catx-on:not(.catx-light) :is(#admin_wrap, .modal) ul:is(.pagination,.pagination-sm,.customer_pagination,.pagination_meeting) > li > a.on{
	background:var(--cx-accent) !important; border-color:var(--cx-accent) !important; color:#fff !important; }

/* 화살표(‹ › » «): FA 글리프(20px, 두껍다)를 숨기고 얇은 CSS 셰브론으로 대체 */
body.catx-on :is(#admin_wrap, .modal) ul:is(.pagination,.pagination-sm,.customer_pagination,.pagination_meeting) a i:is(.fa-angle-left,.fa-angle-right,.fa-angle-up,.fa-angle-down,.fa-angle-double-left,.fa-angle-double-right){
	font-size:0 !important; position:relative !important; display:inline-block !important;
	width:14px !important; height:14px !important; vertical-align:middle !important; }
body.catx-on :is(#admin_wrap, .modal) ul:is(.pagination,.pagination-sm,.customer_pagination,.pagination_meeting) a i:is(.fa-angle-left,.fa-angle-right,.fa-angle-up,.fa-angle-down,.fa-angle-double-left,.fa-angle-double-right)::before,
body.catx-on :is(#admin_wrap, .modal) ul:is(.pagination,.pagination-sm,.customer_pagination,.pagination_meeting) a i:is(.fa-angle-left,.fa-angle-right,.fa-angle-up,.fa-angle-down,.fa-angle-double-left,.fa-angle-double-right)::after{
	content:'' !important; position:absolute !important; top:50% !important; width:5px !important; height:5px !important;
	box-sizing:border-box !important; border-top:1.4px solid currentColor !important; border-right:1.4px solid currentColor !important;
	border-left:0 !important; border-bottom:0 !important; font-family:inherit !important; }
body.catx-on :is(#admin_wrap, .modal) ul:is(.pagination,.pagination-sm,.customer_pagination,.pagination_meeting) a i.fa-angle-right::before{ left:50% !important; transform:translate(-50%,-50%) rotate(45deg) !important; }
body.catx-on :is(#admin_wrap, .modal) ul:is(.pagination,.pagination-sm,.customer_pagination,.pagination_meeting) a i.fa-angle-right::after{ display:none !important; }
body.catx-on :is(#admin_wrap, .modal) ul:is(.pagination,.pagination-sm,.customer_pagination,.pagination_meeting) a i.fa-angle-left::before{ left:50% !important; transform:translate(-50%,-50%) rotate(-135deg) !important; }
body.catx-on :is(#admin_wrap, .modal) ul:is(.pagination,.pagination-sm,.customer_pagination,.pagination_meeting) a i.fa-angle-left::after{ display:none !important; }
body.catx-on :is(#admin_wrap, .modal) ul:is(.pagination,.pagination-sm,.customer_pagination,.pagination_meeting) a i.fa-angle-double-right::before{ left:34% !important; transform:translate(-50%,-50%) rotate(45deg) !important; }
body.catx-on :is(#admin_wrap, .modal) ul:is(.pagination,.pagination-sm,.customer_pagination,.pagination_meeting) a i.fa-angle-double-right::after{ left:62% !important; transform:translate(-50%,-50%) rotate(45deg) !important; }
body.catx-on :is(#admin_wrap, .modal) ul:is(.pagination,.pagination-sm,.customer_pagination,.pagination_meeting) a i.fa-angle-double-left::before{ left:38% !important; transform:translate(-50%,-50%) rotate(-135deg) !important; }
body.catx-on :is(#admin_wrap, .modal) ul:is(.pagination,.pagination-sm,.customer_pagination,.pagination_meeting) a i.fa-angle-double-left::after{ left:66% !important; transform:translate(-50%,-50%) rotate(-135deg) !important; }


/* [예외 1] 챗봇 대화 목록(/admin_chatbot)은 ul.pagination 이 아니라 button 기반
 * 커스텀 페이저(.chatbot-pagination > .chatbot-page-btn)라 위 통합 선택자에 안 걸린다.
 * 같은 치수·색으로 맞춘다(원래 32px·gap 5px·hover 파랑채움이라 혼자 달라 보였다). */
body.catx-on #admin-chatbot-page .chatbot-pagination{ gap:0 !important; }
body.catx-on #admin-chatbot-page .chatbot-page-btn{
	min-width:28px !important; height:28px !important; padding:0 7px !important; margin:0 3px !important;
	border-radius:7px !important; font-size:13px !important; line-height:1 !important; font-weight:400 !important;
	transition: background .12s ease, color .12s ease, border-color .12s ease !important; }
body.catx-on.catx-light #admin-chatbot-page .chatbot-page-btn{
	background:#fff !important; border:1px solid #e3e8f0 !important; color:#33415f !important; }
body.catx-on.catx-light #admin-chatbot-page .chatbot-page-btn:hover{
	background:#f2f6fc !important; border-color:#c3d0e6 !important; color:#1e3a63 !important; }
body.catx-on.catx-light #admin-chatbot-page .chatbot-page-btn.active{
	background:var(--cx-accent) !important; border-color:var(--cx-accent) !important; color:#fff !important; font-weight:700 !important; }
body.catx-on:not(.catx-light) #admin-chatbot-page .chatbot-page-btn{
	background:#243141 !important; border:1px solid rgba(190,214,240,.2) !important; color:#cdd8e6 !important; }
body.catx-on:not(.catx-light) #admin-chatbot-page .chatbot-page-btn:hover{
	background:#2a3644 !important; border-color:var(--cx-accent) !important; color:var(--cx-accent) !important; }
body.catx-on:not(.catx-light) #admin-chatbot-page .chatbot-page-btn.active{
	background:var(--cx-accent) !important; border-color:var(--cx-accent) !important; color:#fff !important; font-weight:700 !important; }
/* 컨테이너 여백(매물목록 전용 — 목록 하단 박스 형태) */
body.catx-on .admin_itemList .pagination_box{ padding:8px 0 !important; }
body.catx-on .item_table_mobile .pagination_box{ display:flex !important; align-items:center !important; justify-content:center !important; }

/* ── 다크 매물목록 마감: 필터 테두리 색·검색버튼 배경 ── */
/* 필터 내부 .box_contents 밝은 테두리(#ddd)가 다크서 밝은 선으로 보임 → 다크 라인 */
body.catx-on:not(.catx-light) .search_filter_btm .box_contents{ border-color: rgba(190,214,240,.16) !important; }
/* 필터 우측 검색버튼(right_btn_01) 배경 흰색(앱 #searchConsoleTop ID 규칙, background shorthand)이라 다크서도 흼 → html+.btn 로 특이도 확보해 다크칩 */
html body.catx-on:not(.catx-light) #searchConsoleTop .admin_item_right_box .btn.btn_search.right_btn_01.right_btn_01{ background-color:#243141 !important; }

/* ── 다크: 필터 우측 구분선(#ddd) + 필터접기 hover 글자 ── */
/* 필터-우측버튼 구분선 & 필터접기 위 선(#ddd) → 다크 라인 */
body.catx-on:not(.catx-light) .search_filter_btm .admin_item_right_box{ border-left-color: rgba(190,214,240,.16) !important; }
body.catx-on:not(.catx-light) .search_filter_btm .filter_top_btn{ border-top-color: rgba(190,214,240,.16) !important; }
/* 필터접기/펼치기(.btn_close/.btn_open) hover 시 글자 검정이라 안보임 → 밝게(다크 한정) */
body.catx-on:not(.catx-light) .search_filter_btm .btn_close:hover,
body.catx-on:not(.catx-light) .search_filter_btm .btn_close:hover *,
body.catx-on:not(.catx-light) .search_filter_btm .btn_open:hover,
body.catx-on:not(.catx-light) .search_filter_btm .btn_open:hover *{ color:#e6edf6 !important; }

/* ── 다크: 툴바/필터 드롭다운 메뉴(팝업) 흰배경·hover 검정 개선 ── */
/* 툴바 드롭다운 메뉴(정렬 인기순·선택기능 등) 흰배경 → 다크 */
body.catx-on:not(.catx-light) .admin_itemList .item_header_pc .dropdown-menu{ background:#243141 !important; border:1px solid rgba(190,214,240,.2) !important; box-shadow:0 6px 20px rgba(0,0,0,.4) !important; }
body.catx-on:not(.catx-light) .admin_itemList .item_header_pc .dropdown-menu li,
body.catx-on:not(.catx-light) .admin_itemList .item_header_pc .dropdown-menu li > a,
body.catx-on:not(.catx-light) .admin_itemList .item_header_pc .dropdown-menu a{ color:#cdd8e6 !important; background:transparent !important; }
body.catx-on:not(.catx-light) .admin_itemList .item_header_pc .dropdown-menu li > a:hover,
body.catx-on:not(.catx-light) .admin_itemList .item_header_pc .dropdown-menu a:hover{ background: rgba(120,160,230,.16) !important; color:#fff !important; }
body.catx-on:not(.catx-light) .admin_itemList .item_header_pc .dropdown-menu .active > a,
body.catx-on:not(.catx-light) .admin_itemList .item_header_pc .dropdown-menu a.active,
body.catx-on:not(.catx-light) .admin_itemList .item_header_pc .dropdown-menu .on > a,
body.catx-on:not(.catx-light) .admin_itemList .item_header_pc .dropdown-menu .selected > a{ background: var(--cx-accent) !important; color:#fff !important; }
/* 필터 bootstrap-select 메뉴 항목 hover 시 글자 검정 방지(밝게) */
body.catx-on:not(.catx-light) .search_filter_btm .bootstrap-select .dropdown-menu li > a:hover,
body.catx-on:not(.catx-light) .search_filter_btm .dropdown-menu:is(.price_drop_box,.area_drop_box,.floor_drop_box,.type_floor_drop_box,.addfilter_drop_box,.admin_hoist_drop_box,.hoist_drop_box,.owner_drop_box,.parking_drop_box,.auction_bids_drop_box,.auction_date_drop_box,.electric_power_drop_box) a:hover{ color:#fff !important; background: rgba(120,160,230,.16) !important; }

/* ── 매물목록 신버전1 다크 마감: 행 수정/삭제 아이콘색·버튼 hover·행 드롭다운 패널·개수보기 ── */
/* req1: 수정=green / 삭제=red — 다크서 다른 액션아이콘처럼 회색(#cdd8e6)이던 것 → 의미색 복원 */
body.catx-on:not(.catx-light) .admin_itemList td .btn.btn_edit i,
body.catx-on:not(.catx-light) .admin_itemList .a_list_btn_box .btn_edit i{ color:#46c98b !important; }
body.catx-on:not(.catx-light) .admin_itemList td .btn.btn_remove i,
body.catx-on:not(.catx-light) .admin_itemList .a_list_btn_box .btn_remove i{ color:#ff8496 !important; }
/* req2: 행 액션버튼 hover — 테두리만 '중립'으로 살짝 밝게(파랑 변환 금지, 사용자 요청). 마케팅(.mrk_btn)/상태변경(.deal_status_btn) 포함 */
body.catx-on:not(.catx-light) .admin_itemList td .btn:hover,
body.catx-on:not(.catx-light) .admin_itemList td .info_btn:hover,
body.catx-on:not(.catx-light) .admin_itemList td .mrk_btn:hover,
body.catx-on:not(.catx-light) .admin_itemList td .deal_status_btn:hover,
body.catx-on:not(.catx-light) .admin_itemList td button:hover{ border-color:rgba(205,218,238,.6) !important; }
body.catx-on:not(.catx-light) .admin_itemList td .btn_edit:hover i{ color:#5fe0a3 !important; }
body.catx-on:not(.catx-light) .admin_itemList td .btn_remove:hover i{ color:#ffa3b1 !important; }
/* 복사(주소 링크 .btn_AddressCopy) hover 살짝 밝게(파랑 아님) */
body.catx-on:not(.catx-light) .admin_itemList td .btn_AddressCopy:hover{ color:#e6edf6 !important; }
/* req3: 행 액션 드롭다운 패널(매물프린트 등) 다크 + 항목 PNG 아이콘(검정 라인아트) filter 로 밝게 */
body.catx-on:not(.catx-light) .admin_itemList .dropdown-menu{ background:#243141 !important; border:1px solid rgba(190,214,240,.2) !important; box-shadow:0 6px 20px rgba(0,0,0,.4) !important; }
body.catx-on:not(.catx-light) .admin_itemList .dropdown-menu li,
body.catx-on:not(.catx-light) .admin_itemList .dropdown-menu li > a,
body.catx-on:not(.catx-light) .admin_itemList .dropdown-menu a,
body.catx-on:not(.catx-light) .admin_itemList .dropdown-menu span{ color:#cdd8e6 !important; }
body.catx-on:not(.catx-light) .admin_itemList .dropdown-menu img{ filter:brightness(0) invert(.82) !important; }
body.catx-on:not(.catx-light) .admin_itemList .dropdown-menu li > a:hover,
body.catx-on:not(.catx-light) .admin_itemList .dropdown-menu a:hover{ background:rgba(120,160,230,.16) !important; color:#fff !important; }
/* req4: N개씩보기 = 네이티브 select. 닫힘 다크 + option(팝업 항목) 다크. html body + option 으로 특이도/색 확보(그래도 OS별 팝업 스타일 편차 있음) */
html body.catx-on:not(.catx-light) .admin_itemList select.form-control{ background-color:#243141 !important; color:#cdd8e6 !important; border:1px solid rgba(190,214,240,.2) !important; }
html body.catx-on:not(.catx-light) .admin_itemList select.form-control option{ background-color:#243141 !important; color:#cdd8e6 !important; }
/* 필터 검색버튼(right_btn_01) hover — 초기화버튼처럼 '채움': 파란 배경+흰 아이콘. #searchConsoleTop ID 규칙(배경 고정)을 이기려 동급 특이도 */
html body.catx-on:not(.catx-light) #searchConsoleTop .admin_item_right_box .btn.btn_search.right_btn_01.right_btn_01:hover{ background-color:var(--cx-accent) !important; border-color:var(--cx-accent) !important; }
html body.catx-on:not(.catx-light) #searchConsoleTop .admin_item_right_box .btn.btn_search.right_btn_01.right_btn_01:hover i{ color:#fff !important; }
/* [요청] 라이트 모드에서도 hover 시에만 파랑 채움(기본 상태는 그대로). 앱 #searchConsoleTop id 배경규칙 이기려 동급 특이도. */
html body.catx-on.catx-light #searchConsoleTop .admin_item_right_box .btn.btn_search.right_btn_01.right_btn_01:hover{ background-color:var(--cx-accent) !important; border-color:var(--cx-accent) !important; }
html body.catx-on.catx-light #searchConsoleTop .admin_item_right_box .btn.btn_search.right_btn_01.right_btn_01:hover i{ color:#fff !important; }

/* ── 매물목록 신버전2(스타일2) 마감 ── */
/* req1: 검색 input-group 이중 테두리 → 앱 그룹 테두리 제거(catx input 테두리 1개만) */
body.catx-on .admin_itemList .item_header_pc .input-group{ border:0 !important; }
/* req2: 엑셀 다운 버튼 텍스트 숨기고 아이콘만 */
body.catx-on .admin_itemList .btn_excel{ font-size:0 !important; padding-left:8px !important; padding-right:8px !important; }
body.catx-on .admin_itemList .btn_excel i{ font-size:15px !important; }
/* req3: 검색버튼(파랑/빨강 배경) 아이콘 회색→흰색(안보이던 것) */
body.catx-on .admin_itemList .item_header_pc .input-group .btn .fa-search{ color:#fff !important; }
/* req4: 다크 — 면적값(.area_wrap .meter 등) 검정 문구 밝게 + 고객정보없음 */
body.catx-on:not(.catx-light) .admin_itemList .item_table_pc .area_wrap,
body.catx-on:not(.catx-light) .admin_itemList .item_table_pc .area_wrap .meter,
body.catx-on:not(.catx-light) .admin_itemList .item_table_pc .area_wrap font,
body.catx-on:not(.catx-light) .admin_itemList .item_table_pc .area_wrap b{ color:#cdd8e6 !important; }
body.catx-on:not(.catx-light) .admin_itemList .none_dates{ color:#8b9bb0 !important; }
/* req5: 다크 정렬탭 — 배경/칩 없이 '문구색'으로만 구분(사용자 요청): 활성=흰색 볼드, 나머지=회색.
   앱이 label:hover·label:hover span·label.active span 에 흰배경(#fff)을 넣으므로 label/ span 모든 상태 배경을 투명으로 덮음(흰색 원천 제거) */
body.catx-on:not(.catx-light) .admin_itemList .btn_align_box{ border-color:rgba(190,214,240,.2) !important; border-radius:7px !important; }
body.catx-on:not(.catx-light) .admin_itemList .btn_align_box label,
body.catx-on:not(.catx-light) .admin_itemList .btn_align_box label:hover,
body.catx-on:not(.catx-light) .admin_itemList .btn_align_box label.active,
body.catx-on:not(.catx-light) .admin_itemList .btn_align_box label span,
body.catx-on:not(.catx-light) .admin_itemList .btn_align_box label:hover span,
body.catx-on:not(.catx-light) .admin_itemList .btn_align_box label.active span{ background:transparent !important; box-shadow:none !important; }
body.catx-on:not(.catx-light) .admin_itemList .btn_align_box label span{ color:#8b9bb0 !important; font-size:13px !important; font-weight:400 !important; transition:color .12s !important; }
body.catx-on:not(.catx-light) .admin_itemList .btn_align_box label:hover span{ color:#cfd8e6 !important; }
body.catx-on:not(.catx-light) .admin_itemList .btn_align_box label.active span{ color:#ffffff !important; font-weight:700 !important; }
/* 거래상태 변경 아이콘(.deal_status 내 fa-sync-alt 등) 검정 → 밝게(다크) */
body.catx-on:not(.catx-light) .admin_itemList .deal_status i{ color:#cdd8e6 !important; }

/* ── 매물목록 신버전3(엑셀형, .table_admin_it/.xl_*) 다크 테마 ── */
/* 테두리 grid(밝은 회색 #e3e6ea → 다크 라인) */
body.catx-on:not(.catx-light) .admin_itemList .table_admin_it td,
body.catx-on:not(.catx-light) .admin_itemList .table_admin_it th{ border-color:rgba(190,214,240,.14) !important; }
/* 우측 액션칩(링크/기능, .xl_etc_btn) 흰배경 → 다크칩 + 밝은 아이콘 */
body.catx-on:not(.catx-light) .admin_itemList .xl_etc_btn{ background:#2a3644 !important; border-color:rgba(190,214,240,.22) !important; }
body.catx-on:not(.catx-light) .admin_itemList .xl_etc_btn i{ color:#cdd8e6 !important; }
/* 매물발송(.xl_sndbtn)/거래상태 변경(.xl_ds_change) 흰배경 → 다크 */
body.catx-on:not(.catx-light) .admin_itemList .xl_sndbtn,
body.catx-on:not(.catx-light) .admin_itemList .xl_ds_change{ background:#2a3644 !important; border-color:rgba(190,214,240,.22) !important; color:#cdd8e6 !important; }
/* 행 hover — 은은한 파랑 틴트 */
body.catx-on:not(.catx-light) .admin_itemList .xl_row:hover > td,
body.catx-on:not(.catx-light) .admin_itemList .xl_row:hover{ background:rgba(120,160,230,.09) !important; }
/* 매물번호 앞 사이트 파비콘(.ico) 흰배경 칩(다크서 어두운 로고 안보임) */
body.catx-on:not(.catx-light) .admin_itemList .xl_itemnum img{ background:#fff !important; border-radius:3px !important; padding:1px !important; box-sizing:border-box !important; }
/* 확인일적용(.xl_cfm_apply) 흰배경 pill → 다크 */
body.catx-on:not(.catx-light) .admin_itemList .xl_cfm_apply{ background:#2a3644 !important; color:#cdd8e6 !important; border-color:rgba(190,214,240,.22) !important; }
/* 비고(.xl_col_etc)는 가로스크롤 가림용 sticky 열이라 배경 흰색 → 다크(테이블 배경색). 흰 띠 제거 */
body.catx-on:not(.catx-light) .admin_itemList .xl_col_etc{ background:#1b2531 !important; }
/* 검정 문구 밝게: 확인일 날짜(.xl_cfm_dt #444) / 금액(.xl_price #1f2530) / 면적(.xl_area .meter #222) */
body.catx-on:not(.catx-light) .admin_itemList .xl_cfm_dt{ color:#9fb0c4 !important; }
body.catx-on:not(.catx-light) .admin_itemList .xl_price,
body.catx-on:not(.catx-light) .admin_itemList .xl_price .price_span,
body.catx-on:not(.catx-light) .admin_itemList .xl_price span,
body.catx-on:not(.catx-light) .admin_itemList .xl_price b{ color:#e6edf6 !important; }
body.catx-on:not(.catx-light) .admin_itemList .xl_area .meter,
body.catx-on:not(.catx-light) .admin_itemList .xl_area{ color:#cdd8e6 !important; }
/* 수정/삭제는 다크서도 기존처럼 초록/빨강(v1에서 회색됐던 것 복원) */
body.catx-on:not(.catx-light) .admin_itemList .xl_etc_edit i{ color:#46c98b !important; }
body.catx-on:not(.catx-light) .admin_itemList .xl_etc_del i{ color:#ff8496 !important; }
/* 항목설정 패널(#xl_col_panel) 흰배경 → 다크 */
body.catx-on:not(.catx-light) #xl_col_panel{ background:#1f2a38 !important; border:1px solid rgba(190,214,240,.2) !important; box-shadow:0 12px 40px rgba(0,0,0,.5) !important; }
body.catx-on:not(.catx-light) #xl_col_panel label,
body.catx-on:not(.catx-light) #xl_col_panel li,
body.catx-on:not(.catx-light) #xl_col_panel span:not(.xl_cp_lock):not(.xl_cp_fixed):not(.fa-lock),
body.catx-on:not(.catx-light) #xl_col_panel h4,
body.catx-on:not(.catx-light) #xl_col_panel h5,
body.catx-on:not(.catx-light) #xl_col_panel .xl_colset_head,
body.catx-on:not(.catx-light) #xl_col_panel :is(.xl_title,.xl_cp_title){ color:#cdd8e6 !important; }
body.catx-on:not(.catx-light) #xl_col_panel .xl_cp_head{ border-bottom-color:rgba(190,214,240,.16) !important; }
/* 항목설정 모달 내부 밝은 요소: 고정행(#f7f8fa)/하단바(#fafbfc)/취소(흰)/초기화(핑크) → 다크 */
body.catx-on:not(.catx-light) #xl_col_panel .xl_cp_fixed{ background:#26323f !important; }
body.catx-on:not(.catx-light) #xl_col_panel .xl_cp_foot{ background:#1a232f !important; border-top:1px solid rgba(190,214,240,.14) !important; }
body.catx-on:not(.catx-light) #xl_col_panel .xl_cp_cancel{ background:#2a3644 !important; color:#cdd8e6 !important; border:1px solid rgba(190,214,240,.22) !important; }
body.catx-on:not(.catx-light) #xl_col_panel .xl_cp_reset{ background:color-mix(in oklab, var(--cx-red) 16%, transparent) !important; color:#ff9db0 !important; border:1px solid color-mix(in oklab, var(--cx-red) 40%, transparent) !important; }

/* ── 매물목록 모바일 카드뷰 다크 — 검정 문구(매물번호/제목/매물종류/금액/필터 등) 밝게 ── */
body.catx-on:not(.catx-light) .admin_itemList .item_num_cnt,
body.catx-on:not(.catx-light) .admin_itemList .item_title,
body.catx-on:not(.catx-light) .admin_itemList .item_tit_box_wrap,
body.catx-on:not(.catx-light) .admin_itemList .thema_type_box,
body.catx-on:not(.catx-light) .admin_itemList .thema_type_box .ellipsis,
body.catx-on:not(.catx-light) .admin_itemList .price_type_box,
body.catx-on:not(.catx-light) .admin_itemList .price_type_box .price_span,
body.catx-on:not(.catx-light) .admin_itemList .price_type_box span,
body.catx-on:not(.catx-light) .admin_itemList .mobile_search_btn,
body.catx-on:not(.catx-light) .admin_itemList .mobile_search_btn span{ color:#e6edf6 !important; }
/* 담당자/소재지/상태라벨 등 나머지 검정 문구도 밝게 (모바일 카드) */
body.catx-on:not(.catx-light) .admin_itemList .item_address,
body.catx-on:not(.catx-light) .admin_itemList .item_address.ellipsis,
body.catx-on:not(.catx-light) .admin_itemList .officer_box,
body.catx-on:not(.catx-light) .admin_itemList .officer_box *,
body.catx-on:not(.catx-light) .admin_itemList .public_select_box,
body.catx-on:not(.catx-light) .admin_itemList .public_select_box label,
body.catx-on:not(.catx-light) .admin_itemList .public_select_box span{ color:#cdd8e6 !important; }
/* 담당자 전화(text-danger)는 붉은톤 유지하되 다크에서 밝게 */
body.catx-on:not(.catx-light) .admin_itemList .officer_box .text-danger{ color:#ff8496 !important; }
/* 기능(⚙) 드롭다운 메뉴(.xl_etc_menu) 흰배경 → 다크 + 항목 밝게/hover. 열림상태(.on/.show/인라인)·내부 래퍼(ul/div)까지 강제 */
body.catx-on:not(.catx-light) .admin_itemList .xl_etc_menu,
body.catx-on:not(.catx-light) .admin_itemList .xl_etc_menu.on,
body.catx-on:not(.catx-light) .admin_itemList .xl_etc_menu.show,
body.catx-on:not(.catx-light) .admin_itemList .xl_etc_menu[style],
body.catx-on:not(.catx-light) .admin_itemList .xl_etc_menu > ul,
body.catx-on:not(.catx-light) .admin_itemList .xl_etc_menu > div{ background-color:#243141 !important; }
body.catx-on:not(.catx-light) .admin_itemList .xl_etc_menu{ border:1px solid rgba(190,214,240,.2) !important; box-shadow:0 8px 24px rgba(0,0,0,.5) !important; }
/* ★ 실제 열리는 기능 팝업은 body 직속 #xl_etc_pop(흰배경) — .admin_itemList 스코프 밖이라 위 규칙이 안 닿음. ID로 직접 다크화. */
body.catx-on:not(.catx-light) #xl_etc_pop{ background:#243141 !important; border:1px solid rgba(190,214,240,.2) !important; box-shadow:0 10px 30px rgba(0,0,0,.55) !important; }
body.catx-on:not(.catx-light) #xl_etc_pop > *{ background:transparent !important; }
body.catx-on:not(.catx-light) #xl_etc_pop .xl_mi,
body.catx-on:not(.catx-light) #xl_etc_pop a,
body.catx-on:not(.catx-light) #xl_etc_pop span,
body.catx-on:not(.catx-light) #xl_etc_pop li{ color:#cdd8e6 !important; }
body.catx-on:not(.catx-light) #xl_etc_pop .xl_mi:hover,
body.catx-on:not(.catx-light) #xl_etc_pop a:hover,
body.catx-on:not(.catx-light) #xl_etc_pop li:hover{ background:rgba(120,160,230,.16) !important; color:#fff !important; }
body.catx-on:not(.catx-light) #xl_etc_pop hr,
body.catx-on:not(.catx-light) #xl_etc_pop .divider,
body.catx-on:not(.catx-light) #xl_etc_pop :is(.label_line,.mdd_label_line,.form-inline){ border-color:rgba(190,214,240,.14) !important; background-color:rgba(190,214,240,.14) !important; }
body.catx-on:not(.catx-light) .admin_itemList .xl_etc_menu .xl_mi{ color:#cdd8e6 !important; background:transparent !important; }
body.catx-on:not(.catx-light) .admin_itemList .xl_etc_menu .xl_mi i{ color:inherit !important; }
body.catx-on:not(.catx-light) .admin_itemList .xl_etc_menu .xl_mi:hover{ background:rgba(120,160,230,.16) !important; color:#fff !important; }
body.catx-on:not(.catx-light) .admin_itemList .xl_etc_menu hr,
body.catx-on:not(.catx-light) .admin_itemList .xl_etc_menu .divider{ border-color:rgba(190,214,240,.14) !important; background:rgba(190,214,240,.14) !important; }

/* ============================================================================
   [매물목록 버튼 개편] 일반 목록형(catx) 카드 레이아웃 + 하단 그룹 액션바
   - 적용 범위: body.catx-on.catx-list-normal (일반 목록형=itemlist_style 1) + PC(>1600px)만.
   - 엑셀 목록형(list_v3_catx)/비catx/좁은폭(<=1600)에는 전혀 적용 안 됨(구조적 격리).
   - 버튼 자체는 admin_header_category.php 의 재조립 스크립트(cx_itemlist_actionbar)가
     기존 DOM을 '이동'시켜 구성 → 서버 렌더 권한 로직/onclick 핸들러 100% 보존.
   - 롤백태그: itemlist-button-rollback-20260908
============================================================================ */
@media (min-width:993px){ /* PC 카드/리오거나이저 스타일은 >992px에서만(앱이 PC목록 렌더하는 폭) */
  /* [안티플래시] 리오거나이저 적용(cxab-done) 전 행은 잠깐 숨김 → 필터/AJAX 재렌더 시 '원본 스타일' 번쩍임 방지.
     body.cxab-active(리오거나이저 최초 동작 시 부여)일 때만 적용 → JS 미동작 시엔 원본 그대로 노출(안전). */
  body.catx-on.catx-list-normal.cxab-active .admin_itemList table.list_table_pc_zone > tbody > tr[data-id]:not(.cxab-done):not(.lazy_stub){ visibility:hidden !important; }
  body.catx-on.catx-list-normal .admin_itemList table.list_table_pc_zone thead{ display:none !important; }
  body.catx-on.catx-list-normal .admin_itemList table.list_table_pc_zone{ display:block !important; width:100% !important; min-width:1280px !important; background:transparent !important; border-collapse:separate !important; border-spacing:0 !important; }
  body.catx-on.catx-list-normal .admin_itemList table.list_table_pc_zone > tbody{ display:block !important; width:100% !important; min-width:1280px !important; }
  /* 13인치 등 좁은 폭에서도 카드 유지 위해 list_pc 셀 강제 노출(앱 max-width:1600 규칙 오버라이드) */
  body.catx-on.catx-list-normal .list_table_pc_zone tr[data-id] > td.list_pc{ display:block !important; }
  /* 빈 목록 행(tr 에 data-id 없음): table/tbody 를 block 으로 바꿔 둔 탓에 이 행만 내용 폭으로 줄어
     '등록된 매물이 없습니다'가 왼쪽에 붙었다 → 행을 전체 폭 flex 로 펴서 가운데 오게 한다. 2026-09-16 */
  body.catx-on.catx-list-normal table.list_table_pc_zone > tbody > tr.catx-empty-row:not([data-id]){ display:flex !important; width:100% !important; }
  body.catx-on.catx-list-normal table.list_table_pc_zone > tbody > tr.catx-empty-row:not([data-id]) > td{ flex:1 1 100% !important; width:100% !important; border:0 !important; background:transparent !important; }
  body.catx-on.catx-list-normal table.list_table_pc_zone > tbody > tr[data-id]{ display:flex !important; flex-wrap:wrap !important; align-items:center !important; width:100% !important; min-width:1256px !important; box-sizing:border-box !important; border:1px solid #e1e6ec !important; border-radius:10px !important; margin:0 0 10px 0 !important; padding:10px 12px 0 !important; box-shadow:0 1px 2px rgba(20,28,40,.04) !important; overflow:visible !important; }
  /* 카드 배경: 일반은 흰색 / 거래완료(.list_imgFinish 포함 행)는 앱 설정색(color_is_finish) 노출 — 흰배경 규칙에서 제외 */
  body.catx-on.catx-list-normal table.list_table_pc_zone > tbody > tr[data-id]:not(:has(.list_imgFinish)){ background:#fff !important; }
  /* 거래완료 카드: 하단 액션바도 투명 처리해 카드 전체가 설정 틴트로 보이게 */
  body.catx-on.catx-list-normal table.list_table_pc_zone > tbody > tr[data-id]:has(.list_imgFinish) > .cxab-cell{ background:transparent !important; border-top-color:rgba(20,28,40,.08) !important; }
  body.catx-on.catx-list-normal table.list_table_pc_zone > tbody > tr[data-id]:hover{ border-color:#c9d4e2 !important; }
  body.catx-on.catx-list-normal table.list_table_pc_zone > tbody > tr[data-id] > td:not(.cxab-cell){ border:0 !important; background:transparent !important; padding:0 6px 10px !important; box-sizing:border-box !important; vertical-align:middle !important; }
  body.catx-on.catx-list-normal tr[data-id] > td.list_tablet{ display:none !important; }
  body.catx-on.catx-list-normal tr[data-id] > .catx-c-chk{ flex:0 0 28px !important; }
  body.catx-on.catx-list-normal tr[data-id] > .catx-c-thumb{ flex:0 1 72px !important; }
  body.catx-on.catx-list-normal tr[data-id] > .catx-c-num{ flex:0 1 94px !important; }
  body.catx-on.catx-list-normal tr[data-id] > .catx-c-status{ flex:0 0 auto !important; min-width:110px !important; width:max-content !important; }
  body.catx-on.catx-list-normal tr[data-id] > .catx-c-deal{ flex:0 1 108px !important; } /* 거래유형+상태 한 줄 확보 위해 폭 확대(86→108) */
  body.catx-on.catx-list-normal tr[data-id] > .catx-c-info{ flex:1 1 150px !important; min-width:150px !important; text-align:left !important; }
  /* 재구성된 카드의 버튼은 하단 액션바/날짜 칸으로 이동했다. 원래 버튼 영역의 95px 예약 폭을
     모든 PC 폭에서 제거해 제목·주소가 정보 칸의 실제 폭을 사용하게 한다. */
  body.catx-on.catx-list-normal tr.cxab-done .catx-c-info .item_info_box_R{ display:none !important; }
  body.catx-on.catx-list-normal tr.cxab-done .catx-c-info .item_info_box_L{ width:100% !important; margin-right:0 !important; }
  /* 넓은 화면(≥1700)에서만 정보 칸 최대 폭을 제한해 면적·종류·금액을 좌측으로 당긴다.
     담당자·날짜는 margin-auto로 우측 원위치 고정한다. */
  @media (min-width:1700px){
    body.catx-on.catx-list-normal tr[data-id] > .catx-c-info{ flex:1 1 150px !important; max-width:540px !important; }
    body.catx-on.catx-list-normal tr[data-id] > .catx-c-mgr{ margin-left:auto !important; }
  }
  body.catx-on.catx-list-normal tr[data-id] > .catx-c-area{ flex:0 1 154px !important; text-align:left !important; }
  body.catx-on.catx-list-normal tr[data-id] > .catx-c-kind{ flex:0 1 98px !important; text-align:left !important; }
  body.catx-on.catx-list-normal .list_table_pc_zone tr[data-id] .catx-c-kind .thema_type_box{ text-align:left !important; }
  /* 면적/층 컬럼: 정보칸에서 이동된 기존 면적블록(.item_list_area_wrap) — 모든 타입·토지 지목/용도지역 포함 */
  body.catx-on.catx-list-normal .list_table_pc_zone tr[data-id] .catx-c-area .cx_area_box{ font-size:13px !important; font-weight:400 !important; color:#333 !important; line-height:1.5 !important; }
  body.catx-on.catx-list-normal .list_table_pc_zone tr[data-id] .catx-c-area .item_list_area_wrap{ display:block !important; background:transparent !important; padding:0 !important; margin:0 !important; font:inherit !important; color:inherit !important; white-space:pre-line !important; overflow-wrap:anywhere; }
  body.catx-on.catx-list-normal tr[data-id] > .catx-c-price{ flex:0 1 172px !important; text-align:left !important; }
  /* 부가세(별도/포함) 텍스트: 금액보다 작게 + 세로 중앙 정렬 */
  body.catx-on.catx-list-normal .list_table_pc_zone tr[data-id] .catx-c-price .cx-vat{ font-size:var(--dash-font-10_5, 10.5px) !important; font-weight:400 !important; color:#8b95a4 !important; vertical-align:middle !important; margin-left:2px !important; }
  body.catx-on.catx-list-normal tr[data-id] > .catx-c-mgr{ flex:0 1 134px !important; text-align:left !important; }
  body.catx-on.catx-list-normal .list_table_pc_zone tr[data-id] .catx-c-mgr .officer_box{ text-align:left !important; }
  body.catx-on.catx-list-normal tr[data-id] > .catx-c-date{ flex:0 1 128px !important; text-align:center !important; } /* 날짜/조회수/확인일버튼 블록: 확인일 버튼 기준 가운데 정렬(사용자 요청) */
  body.catx-on.catx-list-normal .list_table_pc_zone tr[data-id] .catx-c-date .date_view_box{ display:flex !important; flex-direction:column !important; align-items:flex-start !important; width:109px !important; margin-left:auto !important; margin-right:0 !important; text-align:left !important; }
  body.catx-on.catx-list-normal .list_table_pc_zone tr[data-id] .catx-c-date .item_check_btn,
  body.catx-on.catx-list-normal .list_table_pc_zone tr[data-id] .catx-c-date .cxab-chkdd{ margin-left:0 !important; margin-right:0 !important; }
  body.catx-on.catx-list-normal .list_table_pc_zone tr[data-id] .catx-c-date .cxab-chkdd{ display:inline-flex !important; }
  body.catx-on.catx-list-normal tr[data-id] > .catx-c-send,
  body.catx-on.catx-list-normal tr[data-id] > .catx-c-tool,
  body.catx-on.catx-list-normal tr[data-id] > .catx-c-edit{ display:none !important; }
  body.catx-on.catx-list-normal tr[data-id] > .cxab-cell{ display:block !important; flex:1 1 100% !important; order:99 !important; width:auto !important; margin:2px -12px 0 !important; padding:9px 18px 10px !important; border-top:1px solid #eef1f5 !important; background:#fafbfc !important; border-radius:0 0 10px 10px !important; }
  /* 매물목록 내부 여백(카드가 컨테이너 가장자리에 붙지 않게) */
  body.catx-on.catx-list-normal .admin_itemList .admin_table_box{ padding:12px 16px !important; box-sizing:border-box !important; }
}
/* --- 액션바 내부(.cxab 는 재조립 JS가 만들 때만 존재 → 전역이어도 안전, 그래도 catx 게이팅) --- */
body.catx-on.catx-list-normal .cxab{ display:flex; flex-wrap:wrap; align-items:center; gap:6px; }
body.catx-on.catx-list-normal .cxab-grp{ display:flex; align-items:center; gap:4px; }
body.catx-on.catx-list-normal .cxab-div{ width:1px; height:18px; margin:0 5px; flex:none; background:#dfe4ea; }
/* 업무 그룹 내부 소구분선(비밀메모 | 고객매칭): 그룹 구분선(cxab-div)보다 얇고 짧게 */
body.catx-on.catx-list-normal .cxab-subdiv{ width:1px; height:14px; margin:0 3px; flex:none; background:#e6eaef; }
body.catx-on.catx-list-normal .cxab-spacer{ flex:1 1 20px; }
body.catx-on.catx-list-normal .cxab-btn{ height:28px !important; min-height:28px !important; padding:0 10px !important; margin:0 !important; display:inline-flex !important; align-items:center !important; gap:5px !important; white-space:nowrap !important; border:1px solid #ccd3dc !important; border-radius:6px !important; background:#fff !important; box-shadow:none !important; font-size:var(--dash-font-12_5, 12.5px) !important; font-weight:500 !important; color:#2b3440 !important; line-height:1 !important; cursor:pointer !important; float:none !important; width:auto !important; text-decoration:none !important; }
body.catx-on.catx-list-normal .cxab-btn:hover{ background:#f0f3f7 !important; border-color:#a8b2bf !important; text-decoration:none !important; }
body.catx-on.catx-list-normal .cxab-btn > img, body.catx-on.catx-list-normal .cxab-btn > i, body.catx-on.catx-list-normal .cxab-btn > svg{ margin:0 !important; width:13px !important; height:13px !important; flex:none !important; }
body.catx-on.catx-list-normal .cxab-btn.cxab-edit{ border-color:#b3d8bf !important; background:#f1f9f3 !important; color:#1f7a45 !important; font-weight:600 !important; }
/* 삭제된 매물 목록의 '복원'은 수정(초록)과 같은 cxab-edit 필을 쓰고 있어 구분이 안 됐다 → 파랑 계열.
 * btn_restore 클래스는 원본 마크업에 그대로 남아 있어 그걸로 골라낸다. */
body.catx-on .cxab-btn.btn_restore,
body.catx-on.catx-list-normal .cxab-btn.cxab-edit.btn_restore{
	border-color:#b9d3f5 !important; background:#eef5ff !important; color:#1c64c4 !important; }
body.catx-on .cxab-btn.btn_restore i,
body.catx-on .cxab-btn.btn_restore svg{ color:#1c64c4 !important; }
body.catx-on:not(.catx-light) .cxab-btn.btn_restore,
body.catx-on:not(.catx-light).catx-list-normal .cxab-btn.cxab-edit.btn_restore{
	border-color:#31527d !important; background:#16283f !important; color:#8ab8ff !important; }
body.catx-on:not(.catx-light) .cxab-btn.btn_restore i,
body.catx-on:not(.catx-light) .cxab-btn.btn_restore svg{ color:#8ab8ff !important; }
body.catx-on.catx-list-normal .cxab-btn.cxab-del{ border-color:#e8b8b3 !important; background:#fdf3f2 !important; color:#c0392f !important; font-weight:600 !important; }
body.catx-on.catx-list-normal .cxab-btn.cxab-naver{ border-color:#b8cfe6 !important; background:#eef5fc !important; color:#22608f !important; font-weight:600 !important; }
/* 부기사플랫폼 발송상태 버튼: 아이콘만(solid blue/red) 표시, 날짜는 hover 툴팁 → 계약 등과 폭 충돌 방지 */
body.catx-on.catx-list-normal .cxab-btn.cxab-platform{ position:relative !important; aspect-ratio:1/1 !important; padding:0 !important; justify-content:center !important; border-color:#0076e7 !important; background:#0076e7 !important; color:#fff !important; font-weight:600 !important; }
body.catx-on.catx-list-normal .cxab-btn.cxab-platform:hover{ background:#0068cf !important; border-color:#0068cf !important; }
body.catx-on.catx-list-normal .cxab-btn.cxab-platform > img{ margin:0 !important; }
body.catx-on.catx-list-normal .cxab-btn.cxab-platform-fail{ border-color:#F5425E !important; background:#F5425E !important; }
body.catx-on.catx-list-normal .cxab-btn.cxab-platform-fail:hover{ background:#e23350 !important; border-color:#e23350 !important; }
/* 전송일 hover 툴팁 */
body.catx-on.catx-list-normal .cxab-btn.cxab-platform[data-cxdate]::after{ content:attr(data-cxdate); position:absolute; left:50%; bottom:calc(100% + 7px); transform:translateX(-50%); padding:5px 8px; border-radius:6px; background:#1f2937; color:#fff; font-size:var(--dash-font-11, 11px); font-weight:600; line-height:1; white-space:nowrap; box-shadow:0 6px 18px rgba(4,8,14,.28); opacity:0; visibility:hidden; pointer-events:none; transition:opacity .12s ease; z-index:40050; }
body.catx-on.catx-list-normal .cxab-btn.cxab-platform[data-cxdate]::before{ content:''; position:absolute; left:50%; bottom:calc(100% + 2px); transform:translateX(-50%); border:5px solid transparent; border-top-color:#1f2937; opacity:0; visibility:hidden; pointer-events:none; transition:opacity .12s ease; z-index:40050; }
body.catx-on.catx-list-normal .cxab-btn.cxab-platform[data-cxdate]:hover::after, body.catx-on.catx-list-normal .cxab-btn.cxab-platform[data-cxdate]:hover::before{ opacity:1; visibility:visible; }
body.catx-on.catx-list-normal .cxab-dd{ position:relative; }
body.catx-on.catx-list-normal .cxab-cvt{ font-size:var(--dash-font-8, 8px); color:#8b95a4; margin-left:1px; }
body.catx-on.catx-list-normal .cxab-ddmenu{ display:none; position:absolute; top:32px; left:0; z-index:120; min-width:0; width:max-content; max-width:280px; padding:5px; background:#fff; border:1px solid #d7dce3; border-radius:8px; box-shadow:0 12px 28px rgba(20,28,40,.16); flex-direction:column; }
body.catx-on.catx-list-normal .cxab-dd.open .cxab-ddmenu{ display:flex; }
body.catx-on.catx-list-normal .cxab-ddmenu .cxab-dditem{ display:flex !important; align-items:center !important; gap:7px !important; text-align:left !important; padding:7px 10px !important; margin:0 !important; border:0 !important; border-radius:5px !important; background:transparent !important; font-size:var(--dash-font-12_5, 12.5px) !important; font-weight:400 !important; color:#2b3440 !important; cursor:pointer !important; white-space:nowrap !important; width:100% !important; box-sizing:border-box !important; box-shadow:none !important; float:none !important; height:auto !important; min-height:0 !important; line-height:1.3 !important; text-decoration:none !important; }
body.catx-on.catx-list-normal .cxab-ddmenu .cxab-dditem:hover{ background:#eef2f7 !important; text-decoration:none !important; }
body.catx-on.catx-list-normal .cxab-ddmenu .cxab-dditem > img, body.catx-on.catx-list-normal .cxab-ddmenu .cxab-dditem > i, body.catx-on.catx-list-normal .cxab-ddmenu .cxab-dditem > svg{ width:14px !important; height:14px !important; flex:none !important; margin:0 !important; }
body.catx-on.catx-list-normal .cxab-ddhdr{ padding:5px 10px 2px; font-size:var(--dash-font-10_5, 10.5px); font-weight:700; color:#8b95a4; letter-spacing:.02em; }
body.catx-on.catx-list-normal .cxab-dddiv{ height:1px; margin:5px 4px; background:#e6eaef; }
/* --- [매물목록 버튼 개편] 상단 정보영역 시안 매칭(제목/금액/거래상태/담당자/날짜/상태체크) --- */
@media (min-width:993px){ /* PC 카드 스타일은 >992px에서만 */
  /* 거래상태 */
  body.catx-on.catx-list-normal .list_table_pc_zone tr[data-id] .deal_status_box{ display:flex !important; flex-wrap:wrap !important; align-items:center !important; gap:4px 6px !important; width:100% !important; }
  body.catx-on.catx-list-normal .list_table_pc_zone tr[data-id] .deal_status_box .deal,
  body.catx-on.catx-list-normal .list_table_pc_zone tr[data-id] .deal_status_box .deal .text_price_sell{ font-size:var(--dash-font-12_5, 12.5px) !important; font-weight:700 !important; color:#1c2128 !important; }
  body.catx-on.catx-list-normal .list_table_pc_zone tr[data-id] .deal_status_box .status{ order:2 !important; }
  /* 거래상태 배지: 상태 색상(currentColor=인라인 color)의 투명 틴트 배경+테두리로 통일 */
  body.catx-on.catx-list-normal .list_table_pc_zone tr[data-id] .deal_status_box .status .deal_status_btn{ height:20px !important; padding:0 9px !important; display:inline-flex !important; align-items:center !important; border-radius:20px !important; background:color-mix(in srgb, currentColor 13%, transparent) !important; border:1px solid color-mix(in srgb, currentColor 22%, transparent) !important; font-size:var(--dash-font-11, 11px) !important; font-weight:700 !important; }
  body.catx-on.catx-list-normal .list_table_pc_zone tr[data-id] .deal_status_box .deal_status{ order:3 !important; flex-basis:100% !important; height:22px !important; padding:0 7px !important; border:1px solid #d7dce3 !important; border-radius:6px !important; background:#fff !important; font-size:var(--dash-font-11, 11px) !important; color:#5a6472 !important; display:inline-flex !important; align-items:center !important; justify-content:center !important; gap:3px !important; width:auto !important; max-width:72px !important; cursor:pointer !important; }
  body.catx-on.catx-list-normal .list_table_pc_zone tr[data-id] .deal_status_box .deal_status:hover{ background:#f2f5f8 !important; border-color:#b9c1cc !important; }
  /* [변경내역] 상태변경 아래로 이동 + 동일 폭/스타일 */
  body.catx-on.catx-list-normal .list_table_pc_zone tr[data-id] .deal_status_box .btn_detail.cxab-chgmoved{ order:4 !important; flex-basis:100% !important; height:22px !important; padding:0 7px !important; margin:0 !important; border:1px solid #d7dce3 !important; border-radius:6px !important; background:#fff !important; font-size:var(--dash-font-11, 11px) !important; font-weight:500 !important; color:#5a6472 !important; display:inline-flex !important; align-items:center !important; justify-content:center !important; gap:3px !important; width:auto !important; max-width:72px !important; line-height:1 !important; cursor:pointer !important; box-sizing:border-box !important; }
  body.catx-on.catx-list-normal .list_table_pc_zone tr[data-id] .deal_status_box .btn_detail.cxab-chgmoved:hover{ background:#f2f5f8 !important; border-color:#b9c1cc !important; }
  body.catx-on.catx-list-normal .list_table_pc_zone tr[data-id] .deal_status_box .btn_detail.cxab-chgmoved::before{ content:'' !important; width:11px !important; height:11px !important; flex:none !important; background:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%235a6472' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'><path d='M3 3v5h5'/><path d='M3.05 13A9 9 0 1 0 6 5.3L3 8'/><path d='M12 7v5l4 2'/></svg>") center/contain no-repeat !important; }
  body.catx-on.catx-list-normal .list_table_pc_zone tr[data-id] .deal_status_box .deal_status::before{ content:'' !important; width:12px !important; height:12px !important; flex:none !important; background:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%235a6472' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'><path d='M7 4 4 7l3 3'/><path d='M4 7h9a4 4 0 0 1 0 8'/><path d='M17 20l3-3-3-3'/><path d='M20 17h-9a4 4 0 0 1 0-8'/></svg>") center/contain no-repeat !important; }
  /* 매물정보 */
  body.catx-on.catx-list-normal .list_table_pc_zone tr[data-id] .item_title{ font-size:14px !important; font-weight:700 !important; color:#1c2128 !important; line-height:1.35 !important; white-space:normal !important; }
  body.catx-on.catx-list-normal .list_table_pc_zone tr[data-id] .item_address{ font-size:calc(var(--dash-font-12, 12px) + 1px) !important; color:#5a6472 !important; }
  /* 종류 */
  body.catx-on.catx-list-normal .list_table_pc_zone tr[data-id] .thema_type_box{ font-size:var(--dash-font-12, 12px) !important; color:#4a5462 !important; line-height:1.5 !important; }
  body.catx-on.catx-list-normal .list_table_pc_zone tr[data-id] .thema_type_box .ellipsis:first-child{ font-weight:600 !important; color:#1c2128 !important; }
  /* 금액 */
  /* 금액: 거래유형별(매/보/월/관/융자 등) 항목별 줄바꿈(.price_br 로 줄 분리) — 모든 유형 공통 */
  body.catx-on.catx-list-normal .list_table_pc_zone tr[data-id] .price_type_box{ display:block !important; line-height:calc(1.9em - 2px) !important; font-size:14px !important; font-weight:700 !important; color:#1c2128 !important; }
  body.catx-on.catx-list-normal .list_table_pc_zone tr[data-id] .price_type_box > div[style*="float"]{ display:none !important; }
  body.catx-on.catx-list-normal .list_table_pc_zone tr[data-id] .price_type_box .price_br{ display:block !important; clear:both !important; width:100% !important; height:0 !important; margin:0 !important; border:0 !important; }
  body.catx-on.catx-list-normal .list_table_pc_zone tr[data-id] .price_type_box .price_block{ float:none !important; width:max-content !important; min-width:19px !important; height:19px !important; padding:0 4px !important; box-sizing:border-box !important; white-space:nowrap !important; display:inline-flex !important; align-items:center !important; justify-content:center !important; border-radius:4px !important; color:#fff !important; font-size:var(--dash-font-11, 11px) !important; font-weight:700 !important; vertical-align:middle !important; margin-right:5px !important; }
  body.catx-on.catx-list-normal .list_table_pc_zone tr[data-id] .price_type_box .price_span,
  body.catx-on.catx-list-normal .list_table_pc_zone tr[data-id] .price_type_box .m-r-xs{ font-size:14px !important; font-weight:700 !important; color:#1c2128 !important; vertical-align:middle !important; }
  body.catx-on.catx-list-normal .list_table_pc_zone tr[data-id] .price_type_box .price_manager_box{ display:inline !important; }
  /* 담당자 */
  body.catx-on.catx-list-normal .list_table_pc_zone tr[data-id] .officer_box{ font-size:var(--dash-font-11_5, 11.5px) !important; color:#5a6472 !important; line-height:1.5 !important; }
  body.catx-on.catx-list-normal .list_table_pc_zone tr[data-id] .officer_box > div:first-child{ font-weight:600 !important; color:#1c2128 !important; font-size:var(--dash-font-12, 12px) !important; }
  /* 날짜/조회수 */
  body.catx-on.catx-list-normal .list_table_pc_zone tr[data-id] .date_view_box{ font-size:var(--dash-font-11_5, 11.5px) !important; color:#98a1ad !important; line-height:1.35 !important; }
  body.catx-on.catx-list-normal .list_table_pc_zone tr[data-id] .date_view_box > div{ margin:0 !important; padding:0 !important; }
  body.catx-on.catx-list-normal .list_table_pc_zone tr[data-id] .date_view_box .view_cnt_box{ font-size:var(--dash-font-11_5, 11.5px) !important; color:#98a1ad !important; text-align:left !important; }
  body.catx-on.catx-list-normal .list_table_pc_zone tr[data-id] .date_view_box .view_cnt_box i{ display:none !important; }
  /* 상태체크 */
  /* Optional status flags can add a third column; reserve its full label width. */
  body.catx-on.catx-list-normal .list_table_pc_zone tr[data-id] .public_select_box{ display:grid !important; grid-template-rows:repeat(4, auto) !important; grid-auto-flow:column !important; grid-auto-columns:max-content !important; width:max-content !important; gap:4px 12px !important; justify-content:start !important; justify-items:start !important; }
  body.catx-on.catx-list-normal .list_table_pc_zone tr[data-id] .public_select_box > span{ display:flex !important; justify-self:start !important; width:100% !important; }
  body.catx-on.catx-list-normal .list_table_pc_zone tr[data-id] .public_select_box span label{ font-size:var(--dash-font-11, 11px) !important; color:#000 !important; font-weight:400 !important; margin:0 !important; display:inline-flex !important; align-items:center !important; gap:4px !important; width:100% !important; white-space:nowrap !important; word-break:keep-all !important; }
  body.catx-on.catx-list-normal .list_table_pc_zone tr[data-id] .public_select_box label > input[type="checkbox"]{ flex:0 0 auto !important; }
  /* 변경내역 버튼: 카드 스타일 소형 아웃라인 pill + 히스토리 아이콘 */
  body.catx-on.catx-list-normal .list_table_pc_zone tr[data-id] .btn_detail{ display:inline-flex !important; align-items:center !important; gap:4px !important; height:22px !important; padding:0 8px !important; border:1px solid #d7dce3 !important; border-radius:6px !important; background:#fff !important; color:#5a6472 !important; font-size:var(--dash-font-11, 11px) !important; font-weight:500 !important; line-height:1 !important; cursor:pointer !important; white-space:nowrap !important; box-shadow:none !important; margin-top:4px !important; float:none !important; width:auto !important; }
  body.catx-on.catx-list-normal .list_table_pc_zone tr[data-id] .btn_detail:hover{ background:#f2f5f8 !important; border-color:#b9c1cc !important; color:#2b3440 !important; }
  body.catx-on.catx-list-normal .list_table_pc_zone tr[data-id] .btn_detail::before{ content:'' !important; width:12px !important; height:12px !important; flex:none !important; background:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%235a6472' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'><path d='M3 12a9 9 0 1 0 3-6.7L3 8'/><path d='M3 4v4h4'/><path d='M12 7v5l3 2'/></svg>") center/contain no-repeat !important; }
}

/* --- [매물목록 버튼 개편] 버튼 크기 축소(사용자 요청: 전반적으로 더 작게) --- */
body.catx-on.catx-list-normal .cxab{ gap:5px !important; }
body.catx-on.catx-list-normal .cxab-grp{ gap:3px !important; }
body.catx-on.catx-list-normal .cxab-div{ height:14px !important; margin:0 4px !important; }
body.catx-on.catx-list-normal .cxab-subdiv{ height:12px !important; margin:0 2px !important; }
/* [적응형 compact] 액션바가 한 줄에 안 들어갈 때 JS가 .cxab-compact 부여 → 패딩/폰트/간격 축소로 한 줄 유지(문구는 그대로) */
body.catx-on.catx-list-normal .cxab.cxab-compact{ gap:3px !important; }
body.catx-on.catx-list-normal .cxab.cxab-compact .cxab-grp{ gap:2px !important; }
body.catx-on.catx-list-normal .cxab.cxab-compact .cxab-btn{ height:22px !important; min-height:22px !important; padding:0 6px !important; gap:3px !important; font-size:var(--dash-font-11, 11px) !important; }
body.catx-on.catx-list-normal .cxab.cxab-compact .cxab-div{ margin:0 2px !important; height:12px !important; }
body.catx-on.catx-list-normal .cxab.cxab-compact .cxab-subdiv{ margin:0 1px !important; }
body.catx-on.catx-list-normal .cxab-btn{ height:23px !important; min-height:23px !important; padding:0 4px !important; gap:4px !important; font-size:var(--dash-font-11_5, 11.5px) !important; border-radius:5px !important; }
body.catx-on.catx-list-normal .cxab-btn > img, body.catx-on.catx-list-normal .cxab-btn > i, body.catx-on.catx-list-normal .cxab-btn > svg{ width:11px !important; height:11px !important; }
body.catx-on.catx-list-normal .cxab-btn > .cxab-ic{ display:inline-flex !important; align-items:center !important; justify-content:center !important; width:12px !important; height:12px !important; flex:none !important; margin:0 !important; }
body.catx-on.catx-list-normal .cxab-btn > .cxab-ic > svg{ width:12px !important; height:12px !important; display:block !important; }
body.catx-on.catx-list-normal .cxab-ddtrigger > span[style]{ width:11px !important; height:11px !important; }
/* 우측 수정·삭제 묶음을 확인일 버튼과 같은 폭으로 넓히고 두 버튼을 균등 배치 */
body.catx-on.catx-list-normal .cxab .cxab-edit-actions{ flex:0 0 109px !important; width:109px !important; justify-content:stretch !important; }
body.catx-on.catx-list-normal .cxab .cxab-edit-actions > .cxab-btn{ flex:1 1 0 !important; min-width:0 !important; justify-content:center !important; }
body.catx-on.catx-list-normal .cxab-cvt{ font-size:var(--dash-font-7, 7px) !important; }
body.catx-on.catx-list-normal .cxab-ddmenu .cxab-dditem{ font-size:var(--dash-font-12, 12px) !important; padding:6px 9px !important; }
/* [사용자 요청] 액션바 드롭다운 트리거(분석·건축물·등기·계약서·프린트·홍보) 내부 좌우 여백 축소 → 그룹 폭 줄여 정렬 시 줄바꿈 방지 */
body.catx-on.catx-list-normal .cxab .cxab-ddtrigger{ padding-left:4px !important; padding-right:4px !important; }
body.catx-on.catx-list-normal .cxab.cxab-compact .cxab-ddtrigger{ padding-left:3px !important; padding-right:3px !important; }
/* [사용자 요청] 고객정보 버튼 hover 시 뜨는 미리보기 패널(.hover_customInfo, "고객정보가 없습니다." 등) 삭제 —
   행 contain:layout 로 위치도 어긋나고, 클릭(showCustomInfo)이 따로 있어 불필요. */
body.catx-on.catx-list-normal .cxab .info_btn_customInfo .hover_customInfo{ display:none !important; }

/* --- [매물목록 버튼 개편] 래퍼형 버튼(네이버 매물발송=moduda_btn/itemsend_btn) 스타일 깨짐 수정 ---
   moduda_btn 은 div.dropdown 안에 bootstrap <button>(35px·회색·자체패딩)이 중첩 → 알약 밖으로 삐져나옴.
   안쪽 버튼을 중화시켜 바깥 .cxab-btn 알약이 스타일을 담당하게 함(onclick/드롭다운 토글 불변). */
body.catx-on.catx-list-normal .cxab-btn > button,
body.catx-on.catx-list-normal .cxab-btn > .btn{ height:auto !important; min-height:0 !important; padding:0 !important; margin:0 !important; border:0 !important; background:transparent !important; box-shadow:none !important; font:inherit !important; color:inherit !important; line-height:1 !important; display:inline-flex !important; align-items:center !important; gap:4px !important; width:100% !important; }
body.catx-on.catx-list-normal .cxab-btn > button > img,
body.catx-on.catx-list-normal .cxab-btn > .btn > img{ width:12px !important; height:12px !important; margin:0 !important; flex:none !important; }
body.catx-on.catx-list-normal .cxab-naver{ padding:0 9px !important; }

/* --- [매물목록 버튼 개편] 발송상태 패널(.mdd_menu) 스타일 개선 (PC) ---
   구버전 .mdd_menu 마크업은 스타일 스코프(.naver_send_panel) 밖이라 무스타일로 떴다.
   naver_item_send_button.php(.naver_send_panel)의 디자인 값을 그대로 .mdd_menu 구조에 입힌다.
   + moduda 배지가 바 우측이라 기본(좌측정렬) 패널이 우측 overflow 조상에 잘림 → 우측정렬로 회피. */
@media (min-width:993px){
	/* 행마다 contain:layout(성능용)으로 별도 stacking context라, 열린 행의 패널이 '다음 행'에 덮인다 → 열린 행 z-index 상향 */
	body.catx-on.catx-list-normal .list_table_pc_zone tr:has(.moduda_btn.open){ position:relative; z-index:100; }
	body.catx-on.catx-list-normal .moduda_btn > .dropdown-menu{ left:auto !important; right:0 !important; padding:0 !important; background:transparent !important; border:0 !important; box-shadow:none !important; min-width:350px !important; }
	body.catx-on.catx-list-normal .moduda_btn .mdd_menu{ display:flex; flex-direction:column; min-width:348px; background:#fff; border:1px solid #e4e7ec; border-radius:12px; overflow:hidden; box-shadow:0 14px 34px rgba(20,28,40,.16); }
	body.catx-on.catx-list-normal .moduda_btn .mdd_menu .cxpf-head{ display:flex; align-items:center; justify-content:space-between; min-height:39px; padding:0 13px; border-bottom:1px solid #edf0f3; background:#fff; box-sizing:border-box; }
	body.catx-on.catx-list-normal .moduda_btn .mdd_menu .cxpf-head strong{ font-size:var(--dash-font-12, 12px); font-weight:800; color:#202732; }
	body.catx-on.catx-list-normal .moduda_btn .mdd_menu .cxpf-summary{ display:inline-flex; align-items:center; gap:5px; font-size:var(--dash-font-11, 11px); font-weight:600; color:#697482; white-space:nowrap; }
	body.catx-on.catx-list-normal .moduda_btn .mdd_menu .cxpf-summary i{ width:7px; height:7px; border-radius:50%; background:#20a65a; box-shadow:0 0 0 2px #e6f7ed; }
	body.catx-on.catx-list-normal .moduda_btn .mdd_menu .mdd_item_status{ display:flex; align-items:center; justify-content:space-between; gap:12px; min-height:54px; padding:8px 13px; box-sizing:border-box; font-size:var(--dash-font-12_5, 12.5px); line-height:1.3; border-top:1px solid #f0f2f5; }
	body.catx-on.catx-list-normal .moduda_btn .mdd_menu .mdd_item_status:first-child{ border-top:0; }
	body.catx-on.catx-list-normal .moduda_btn .mdd_menu .cxpf-head + .mdd_item_status{ border-top:0; }
	body.catx-on.catx-list-normal .moduda_btn .mdd_menu .cxpf-main{ display:grid; grid-template-columns:18px minmax(0,1fr); grid-template-rows:auto auto; column-gap:8px; row-gap:2px; min-width:0; }
	body.catx-on.catx-list-normal .moduda_btn .mdd_menu .mdd_platform{ display:contents; color:#111; font-weight:700; }
	body.catx-on.catx-list-normal .moduda_btn .mdd_menu .mdd_icon{ display:inline-flex; align-items:center; justify-content:center; flex:0 0 18px; width:18px; height:18px; margin-right:8px; border-radius:4px; background:#000; overflow:hidden; }
	body.catx-on.catx-list-normal .moduda_btn .mdd_menu .mdd_platform .mdd_icon{ grid-column:1; grid-row:1 / span 2; align-self:center; margin:0; }
	body.catx-on.catx-list-normal .moduda_btn .mdd_menu .mdd_platform .cxpf-name{ grid-column:2; grid-row:1; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
	body.catx-on.catx-list-normal .moduda_btn .mdd_menu .mdd_icon img{ max-width:100%; max-height:100%; width:auto; }
	body.catx-on.catx-list-normal .moduda_btn .mdd_menu .mdd_icon.nv{ background:#2acb0f; }
	body.catx-on.catx-list-normal .moduda_btn .mdd_menu .mdd_icon.daol{ background:#0557fe; }
	body.catx-on.catx-list-normal .moduda_btn .mdd_menu .mdd_icon.bgs{ background:#002342; }
	body.catx-on.catx-list-normal .moduda_btn .mdd_menu .mdd_platform_r{ display:contents; }
	body.catx-on.catx-list-normal .moduda_btn .mdd_menu span.mdd_status{ grid-column:2; grid-row:2; display:inline-flex; align-items:center; margin:0 !important; color:#697482; font-size:var(--dash-font-10_5, 10.5px); font-weight:500; white-space:nowrap; }
	body.catx-on.catx-list-normal .moduda_btn .mdd_menu span.daol-account-status{ flex-direction:row; align-items:center; white-space:nowrap; }
	body.catx-on.catx-list-normal .moduda_btn .mdd_menu .mdd_account{ display:inline-block; flex:0 1 auto; min-width:0; max-width:145px; margin-left:5px; padding:1px 4px; border:1px solid #a9c8f5; border-radius:4px; background:#edf4ff; color:#24569b; font-size:var(--dash-font-11, 11px); font-weight:600; line-height:15px; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; vertical-align:middle; box-sizing:border-box; }
	body.catx-on.catx-list-normal .moduda_btn .mdd_menu .mdd_status.verify{ color:#33d84d; }
	body.catx-on.catx-list-normal .moduda_btn .mdd_menu .mdd_status.post{ color:#0557fe; }
	body.catx-on.catx-list-normal .moduda_btn .mdd_menu .cxpf-actions{ display:flex; flex:0 0 auto; align-items:center; gap:6px; margin-left:auto; }
	body.catx-on.catx-list-normal .moduda_btn .mdd_menu .mdd_item_edit,
	body.catx-on.catx-list-normal .moduda_btn .mdd_menu .mdd_item_re_copy{ display:inline-flex; align-items:center; justify-content:center; min-width:42px; height:27px; margin:0; padding:0 9px; border:1px solid #d7dce3; border-radius:7px; background:#fff; color:#3f4855; font-size:var(--dash-font-11, 11px); font-weight:650; line-height:1; white-space:nowrap; cursor:pointer; box-sizing:border-box; }
	body.catx-on.catx-list-normal .moduda_btn .mdd_menu .mdd_item_re_copy{ border-color:#f2a35b; color:#e26f14; }
	body.catx-on.catx-list-normal .moduda_btn .mdd_menu .mdd_item_status:last-child .mdd_item_edit{ border-color:#20242a; background:#20242a; color:#fff; }
}

/* 홍보 패널: 참고 시안처럼 좁은 메뉴 카드와 인스타 발송 이력, SNS 구분을 한 흐름으로 표시한다. */
body.catx-on.catx-list-normal > .cxab-promo-menu,
body.catx-on.catx-list-normal .cxab-promo-dd .cxab-promo-menu{ width:154px !important; min-width:154px !important; max-width:154px !important; padding:7px 6px !important; border:1px solid #d9dee5 !important; border-radius:8px !important; background:#fff !important; box-shadow:0 12px 30px rgba(20,28,40,.16) !important; box-sizing:border-box !important; }
body.catx-on.catx-list-normal .cxab-promo-menu .cxab-dditem{ min-height:27px !important; padding:5px 8px !important; gap:8px !important; border-radius:5px !important; font-size:var(--dash-font-12, 12px) !important; line-height:1.25 !important; color:#4a5360 !important; }
body.catx-on.catx-list-normal .cxab-promo-menu .cxab-dditem > img,
body.catx-on.catx-list-normal .cxab-promo-menu .cxab-dditem > i{ flex:0 0 14px !important; width:14px !important; height:14px !important; margin:0 !important; text-align:center !important; object-fit:contain !important; }
body.catx-on.catx-list-normal .cxab-promo-menu .mrk_blog_btn > img,
body.catx-on.catx-list-normal .cxab-promo-menu .mrk_cafe_btn > img{ filter:none !important; }
body.catx-on.catx-list-normal .cxab-promo-menu .mrk_insta_btn{ flex-wrap:wrap !important; align-items:center !important; }
body.catx-on.catx-list-normal .cxab-promo-menu .cxab-insta-meta{ display:flex !important; flex:0 0 100% !important; flex-direction:column !important; gap:1px !important; margin-top:2px !important; padding:5px 7px !important; border-radius:5px !important; background:#f4f5f6 !important; color:#7a838f !important; box-sizing:border-box !important; }
body.catx-on.catx-list-normal .cxab-promo-menu .cxab-insta-meta b{ overflow:hidden; font-size:var(--dash-font-9, 9px) !important; font-weight:650 !important; line-height:1.2 !important; text-overflow:ellipsis; white-space:nowrap; }
body.catx-on.catx-list-normal .cxab-promo-menu .cxab-insta-meta small{ font-size:var(--dash-font-8, 8px) !important; font-weight:500 !important; line-height:1.2 !important; white-space:nowrap; }
body.catx-on.catx-list-normal .cxab-promo-menu .cxab-dddiv{ height:1px !important; margin:7px 2px 5px !important; background:#e7e9ed !important; }
body.catx-on.catx-list-normal .cxab-promo-menu .cxab-ddhdr{ padding:2px 8px 4px !important; color:#929aa5 !important; font-size:var(--dash-font-10, 10px) !important; font-weight:700 !important; }

/* --- [매물목록 버튼 개편] 드롭다운 항목 내 NEW 배지 위치 조정 ---
   AI 감정평가 등 버튼의 NEW 배지가 position:absolute(top:-6px;right:-2px)라 메뉴 항목 밖으로 떠서 겹침 → 인라인화. */
body.catx-on.catx-list-normal .cxab-ddmenu .cxab-dditem{ position:relative !important; }
body.catx-on.catx-list-normal .cxab-ddmenu .cxab-dditem span[style*="absolute"]{ position:static !important; top:auto !important; right:auto !important; left:auto !important; margin-left:5px !important; display:inline-block !important; vertical-align:middle !important; }

/* --- [매물목록 버튼 개편] 확인일(저장/변경) 버튼 날짜 칸 이동 + 소형 스타일 --- */
/* 확인일 버튼 공통 레이아웃(저장=파랑/변경=초록) */
body.catx-on.catx-list-normal .list_table_pc_zone tr[data-id] .catx-c-date .item_check_btn.item_check_btn1,
body.catx-on.catx-list-normal .list_table_pc_zone tr[data-id] .catx-c-date .cxab-chkdd > .cxab-ddtrigger{ display:inline-flex !important; align-items:center !important; justify-content:center !important; gap:4px !important; height:22px !important; min-height:22px !important; margin:5px 0 0 !important; padding:0 8px !important; border:1px solid transparent !important; border-radius:6px !important; font-size:var(--dash-font-11, 11px) !important; font-weight:600 !important; float:none !important; width:109px !important; cursor:pointer !important; box-shadow:none !important; box-sizing:border-box !important; }
/* 확인일 변경 드롭다운 래퍼도 수정+삭제 묶음과 동일한 109px */
body.catx-on.catx-list-normal .list_table_pc_zone tr[data-id] .catx-c-date .cxab-chkdd{ width:109px !important; }
/* 원본 확인일 변경 드롭다운(item_check_btn2)은 커스텀 dd로 대체 → 숨김 */
body.catx-on.catx-list-normal .list_table_pc_zone tr[data-id] .catx-c-date .item_check_btn.item_check_btn2{ display:none !important; }
/* 확인일 저장(미저장 상태) = 파란색 */
body.catx-on.catx-list-normal .list_table_pc_zone tr[data-id] .catx-c-date .item_check_btn.item_check_btn1{ border-color:#b8cfe6 !important; background:#eef5fc !important; color:#22608f !important; }
body.catx-on.catx-list-normal .list_table_pc_zone tr[data-id] .catx-c-date .item_check_btn.item_check_btn1:hover{ background:#e2eefa !important; border-color:#8fb6da !important; }
/* 확인일 변경(저장됨 상태) = 초록색 */
body.catx-on.catx-list-normal .list_table_pc_zone tr[data-id] .catx-c-date .cxab-chkdd > .cxab-ddtrigger{ border-color:#a8d4b8 !important; background:#f1f9f3 !important; color:#1f7a45 !important; }
body.catx-on.catx-list-normal .list_table_pc_zone tr[data-id] .catx-c-date .cxab-chkdd > .cxab-ddtrigger:hover{ background:#e4f3e9 !important; border-color:#8ec5a1 !important; }
body.catx-on.catx-list-normal .list_table_pc_zone tr[data-id] .catx-c-date .cxab-chkdd .cxab-cvt{ color:#1f7a45 !important; }
/* 갱신일·등록일(.reg_date_box) 검정 */
body.catx-on.catx-list-normal .list_table_pc_zone tr[data-id] .catx-c-date .reg_date_box{ color:#1c2128 !important; }
body.catx-on.catx-list-normal .list_table_pc_zone tr[data-id] .catx-c-date .item_check_btn i{ font-size:var(--dash-font-11, 11px) !important; margin:0 !important; }
body.catx-on.catx-list-normal .list_table_pc_zone tr[data-id] .catx-c-date .item_check_btn .btn{ height:auto !important; padding:0 !important; border:0 !important; background:transparent !important; color:inherit !important; font:inherit !important; box-shadow:none !important; display:inline-flex !important; align-items:center !important; gap:4px !important; }

/* --- [매물목록 버튼 개편] 계약 버튼 계약서 개수 배지 --- */
/* 계약서 있음 = 파랑 강조 */
body.catx-on.catx-list-normal .cxab .cxab-contract-has > .cxab-ddtrigger{ border-color:#b6cbe2 !important; background:#eef5fc !important; color:#22608f !important; }
/* 거래완료인데 계약서 없음 = 빨강 강조 */
body.catx-on.catx-list-normal .cxab .cxab-contract-warn > .cxab-ddtrigger{ border-color:#e8b8b3 !important; background:#fdf3f2 !important; color:#c0392f !important; font-weight:700 !important; }
body.catx-on.catx-list-normal .cxab .cxab-contract-warn > .cxab-ddtrigger .cxab-cvt{ color:#c0392f !important; }
body.catx-on.catx-list-normal .cxab .cxab-contract-warn > .cxab-ddtrigger:hover{ background:#fbe6e3 !important; border-color:#d99a93 !important; }
body.catx-on.catx-list-normal .cxab .cxab-ccnt{ display:inline-flex !important; align-items:center !important; height:14px !important; padding:0 5px !important; margin-left:1px !important; border-radius:8px !important; background:#2f6fb3 !important; color:#fff !important; font-size:var(--dash-font-9_5, 9.5px) !important; font-weight:700 !important; line-height:1 !important; }
/* 계약서 1건 = ✓ 표시(파랑 체크) */
body.catx-on.catx-list-normal .cxab .cxab-ccheck{ margin-left:2px !important; font-size:var(--dash-font-12, 12px) !important; font-weight:800 !important; line-height:1 !important; color:#2f6fb3 !important; }

/* --- [매물목록] 툴바 전체선택 컨트롤 --- */
body.catx-on.catx-list-normal .cx-selectall{ display:inline-flex !important; align-items:center !important; gap:5px !important; height:32px !important; padding:0 10px !important; margin-right:6px !important; border:1px solid #d7dce3 !important; border-radius:8px !important; background:#fff !important; font-size:var(--dash-font-12_5, 12.5px) !important; color:#3f3f46 !important; cursor:pointer !important; white-space:nowrap !important; vertical-align:middle !important; }
body.catx-on.catx-list-normal .cx-selectall:hover{ border-color:#b9c1cc !important; background:#f7f9fb !important; }
body.catx-on.catx-list-normal .cx-selectall input{ margin:0 !important; width:14px !important; height:14px !important; cursor:pointer !important; accent-color:#2f6fb3 !important; }
/* 선택 개수를 배지(pill)로 표시 — 필수정보 누락 배지와 동일한 형태(색만 파랑 계열). 선택 0개면 숨김. */
body.catx-on.catx-list-normal .cx-selectall .cx-selectall-cnt{ display:inline-flex !important; align-items:center !important; justify-content:center !important; min-width:18px !important; height:18px !important; padding:0 6px !important; margin-left:1px !important; border-radius:9px !important; background:#2f6fb3 !important; color:#fff !important; font-size:var(--dash-font-11, 11px) !important; font-weight:700 !important; line-height:1 !important; }
body.catx-on.catx-list-normal .cx-selectall .cx-selectall-cnt:empty{ display:none !important; }

/* PC 매물목록의 작은 글자만 비례 확대. 매물번호·제목·주소는 기존 크기 유지. */
@media (min-width:993px){
  body.catx-on.catx-list-normal .admin_itemList{
    --dash-font-7:7.5px;
    --dash-font-8:8.5px;
    --dash-font-9:9.5px;
    --dash-font-9_5:10px;
    --dash-font-10:10.5px;
    --dash-font-10_5:11px;
    --dash-font-11:11.75px;
    --dash-font-11_5:12.25px;
    --dash-font-12:12.75px;
    --dash-font-12_5:13.25px;
  }
  /* 툴바는 작은 글자 확대 대상에서 제외하고 원래 글자 크기를 사용한다. */
  body.catx-on.catx-list-normal .admin_itemList .item_header_pc{
    --dash-font-7:7px;
    --dash-font-8:8px;
    --dash-font-9:9px;
    --dash-font-9_5:9.5px;
    --dash-font-10:10px;
    --dash-font-10_5:10.5px;
    --dash-font-11:11px;
    --dash-font-11_5:11.5px;
    --dash-font-12:12px;
    --dash-font-12_5:12.5px;
  }
  body.catx-on.catx-list-normal .admin_itemList .list_table_pc_zone tr[data-id] .catx-c-area .cx_area_box{
    font-size:13.5px !important;
  }
  body.catx-on.catx-list-normal .admin_itemList .list_table_pc_zone tr[data-id] .price_type_box,
  body.catx-on.catx-list-normal .admin_itemList .list_table_pc_zone tr[data-id] .price_type_box .price_span,
  body.catx-on.catx-list-normal .admin_itemList .list_table_pc_zone tr[data-id] .price_type_box .m-r-xs{
    font-size:14.75px !important;
  }
  body.catx-on.catx-list-normal .admin_itemList .list_table_pc_zone tr[data-id] .price_type_box > span[style="font-size:16px;"]{
    font-size:14px !important;
  }
  body.catx-on.catx-list-normal .admin_itemList .list_table_pc_zone tr[data-id] .item_address{
    font-size:13px !important;
  }
  body.catx-on.catx-list-normal .admin_itemList .list_table_pc_zone tr[data-id] .date_view_box,
  body.catx-on.catx-list-normal .admin_itemList .list_table_pc_zone tr[data-id] .date_view_box .view_cnt_box{
    font-size:11.5px !important;
  }
  body.catx-on.catx-list-normal .admin_itemList .qpe-trigger,
  body.catx-on.catx-list-normal .admin_itemList .qpe-trigger > span{
    font-size:10.5px !important;
  }
}

/* [엑셀형(item_table_xl) 비밀메모] 여러 줄(nl2br <br>) 줄바꿈 간격 축소 — catx 스코프 */
body.catx-on .item_table_xl .xl_memo,
body.catx-on .xl_table .xl_memo{ line-height:1.3 !important; }
body.catx-on .item_table_xl .xl_memo br,
body.catx-on .xl_table .xl_memo br{ line-height:1 !important; }

/* [catx 엑셀형] 거래상태 · 계약서 작성 아이콘 버튼 + 작성 개수 배지 (계약완료 매물) */
/* 좁은 열폭에서 버튼 그룹이 다음 줄로 래핑되게(옆칸 침범 방지) — 셀 래핑 허용 + 그룹은 내부 nowrap */
body.catx-on .xl_table .xl_col_deal_status{ white-space:normal !important; line-height:1.7; }
body.catx-on .xl_table .xl_ds_acts{ display:inline-flex; align-items:center; gap:4px; white-space:nowrap; vertical-align:middle; }
body.catx-on .xl_table .xl_ds_acts .xl_ds_change{ margin-left:0 !important; }
body.catx-on .xl_table .xl_ct_write{ position:relative; display:inline-flex; align-items:center; justify-content:center; width:22px; height:22px; margin-left:0; border:1px solid #d7dce3; border-radius:6px; color:#5b6472; background:#fff; cursor:pointer; vertical-align:middle; }
body.catx-on .xl_table .xl_ct_write:hover{ border-color:#2f6fb3; color:#2f6fb3; background:#f5f9ff; }
body.catx-on .xl_table .xl_ct_write.has{ border-color:#2f6fb3; color:#2f6fb3; }
body.catx-on .xl_table .xl_ct_write .xl_ct_badge{ position:absolute; top:-6px; right:-6px; min-width:15px; height:15px; padding:0 3px; box-sizing:border-box; border-radius:8px; background:#2f6fb3; color:#fff; font-size:var(--dash-font-9, 9px); font-weight:700; line-height:15px; text-align:center; font-style:normal; box-shadow:0 0 0 1.5px #fff; }
/* 다크(모노톤) */
body.catx-on:not(.catx-light) .xl_table .xl_ct_write{ background:#2a3644; border-color:rgba(190,214,240,.22); color:#cdd8e6; }
body.catx-on:not(.catx-light) .xl_table .xl_ct_write:hover{ border-color:#6ea3e6; color:#dce8f8; background:#324152; }
body.catx-on:not(.catx-light) .xl_table .xl_ct_write.has{ border-color:#6ea3e6; color:#dce8f8; }
body.catx-on:not(.catx-light) .xl_table .xl_ct_write .xl_ct_badge{ background:#4a86d8; box-shadow:0 0 0 1.5px #1f2733; }

/* Dashboard support shortcuts: compact desktop header layout. */
@media (min-width:993px){
    /* 12px topbar padding + 14px gap: support buttons start at the sidebar edge. */
    body.catx-on .catx-topbar .catx-tb-left{flex:0 0 calc(var(--cx-sidebar-w) - 26px);width:calc(var(--cx-sidebar-w) - 26px);}
    body.catx-on .catx-topbar .catx-brand{flex:1 1 0;min-width:0;}
    body.catx-on .catx-topbar .catx-brand-name{width:100%;white-space:nowrap;}
    body.catx-on.catx-nav-collapsed .catx-topbar .catx-tb-left{flex-basis:38px;width:38px;}
    body.catx-on.catx-nav-collapsed .catx-topbar .catx-brand{display:none;}
    body.catx-on .catx-topbar .catx-header-support{display:flex;flex-wrap:nowrap;gap:8px;flex-shrink:0;margin-left:0;}
    body.catx-on .catx-topbar .catx-header-support .catxd-qbtn{width:auto;height:36px;padding:0 10px;flex-direction:row;gap:6px;border-radius:11px;font-size:var(--dash-font-12, 12px);font-weight:700;white-space:nowrap;}
    body.catx-on .catx-topbar .catx-header-support .catxd-qbtn svg{width:16px;height:16px;flex-shrink:0;}
	body.catx-on .catx-topbar .catx-header-support .catx-support-remote svg{color:#3478f6;}
	body.catx-on .catx-topbar .catx-header-support .catx-support-center svg{color:#e5a900;}
	body.catx-on .catx-topbar .catx-header-support .catx-support-suggest svg{color:#f23f87;}
	body.catx-on .catx-topbar .catx-header-support .catx-support-guide svg{color:#22a560;}
}
@media (min-width:993px) and (max-width:1200px){
    body.catx-on .catx-topbar .catx-header-support{margin-left:0;gap:5px;}
    body.catx-on .catx-topbar .catx-header-support .catxd-qbtn{padding:0 8px;font-size:var(--dash-font-11, 11px);}
}

/* Support links are shared by every desktop admin page. */
body.catx-on .catx-topbar .catx-header-support{display:none;}
@media (min-width:993px){
    body.catx-on .catx-topbar .catx-header-support{display:flex;}
    body.catx-on .catxd-head .catxd-quick{display:none;}
}

/* ==================== 사이드바 메뉴 세로 스크롤 (데스크톱) ==================
 * 메뉴가 화면보다 길면 잘린 채 스크롤도 되지 않았다.
 * overflow-y:auto 규칙이 @media (max-width:992px) 안에만 있어 모바일에만 걸리고
 * 데스크톱에는 스크롤 규칙이 아예 없었다(계산값 overflow-y: hidden).
 * 메뉴 수는 계정 권한에 따라 달라지므로 화면이 낮거나 메뉴가 많으면 하단 항목에
 * 접근할 수 없다. 캐스케이드로 확실히 이기도록 파일 끝에 둔다.
 * ========================================================================== */
@media (min-width:993px){
	body.catx-on #admin_wrap header.style_admin_category .logo_btm{
		min-height:0 !important; overflow:hidden !important;
	}
	body.catx-on #admin_wrap header.style_admin_category .nav_view_box{
		flex:1 1 auto !important; min-height:0 !important;
		overflow-y:auto !important; overflow-x:hidden !important;
		-webkit-overflow-scrolling:touch;
	}
}

/* ==================== 지연렌더 스텁 높이 = 실제 행 높이 ====================
 * 스크롤해서 스텁이 실제 행으로 바뀔 때마다 목록이 29px 씩 밀렸다.
 * 스텁 높이는 admin_item_v2.php 의 .item_table_pc tbody tr.lazy_stub{height:139px}
 * 인데, catx 일반 목록형의 실제 행은 168px 라 둘이 어긋난다(dev 실측).
 * catx 전용으로만 맞춘다 — 엑셀형(.item_table_xl, 28px)과 모바일 카드
 * (.item_mobile_box.lazy_stub, 191px)는 레이아웃이 달라 건드리지 않는다.
 * 행 높이가 바뀌면 이 값도 같이 고쳐야 한다.
 * ========================================================================== */
@media (min-width:993px){
	body.catx-on.catx-list-normal .list_table_pc_zone > tbody > tr.lazy_stub{
		height:168px !important; min-height:168px !important;
		display:flex !important; align-items:center !important;
		padding:0 10px !important; box-sizing:border-box !important;
		border-bottom:1px solid #eee !important; background:#fff !important;
	}
	/* 실제 행은 flex 라 칸 하나짜리 스켈레톤은 36x26 점으로 찍혔다(빈 흰 박스처럼 보임).
	   썸네일 자리와 글줄로 실제 행 모양을 흉내내 '불러오는 중' 으로 읽히게 한다. */
	body.catx-on.catx-list-normal .list_table_pc_zone > tbody > tr.lazy_stub > td.text-center{
		flex:0 0 28px !important; width:28px !important; border:0 !important; padding:0 !important;
	}
	body.catx-on.catx-list-normal .list_table_pc_zone > tbody > tr.lazy_stub > td.lazy_skel{
		flex:1 1 auto !important; width:auto !important; height:auto !important;
		display:flex !important; align-items:center !important; gap:18px !important;
		border:0 !important; padding:0 6px !important;
	}
	body.catx-on.catx-list-normal tr.lazy_stub .lazy_skel_thumb{
		display:block; flex:0 0 72px; width:72px; height:72px; border-radius:6px;
		background:linear-gradient(90deg,#f1f1f1 25%,#e6e6e6 37%,#f1f1f1 63%); background-size:400% 100%;
		animation:lazyshimmer 1.2s ease-in-out infinite;
	}
	body.catx-on.catx-list-normal tr.lazy_stub .lazy_skel_lines{
		display:flex; flex:1 1 auto; flex-direction:column; gap:12px; min-width:0;
	}
	body.catx-on.catx-list-normal tr.lazy_stub .lazy_skel_lines .lazy_skel_bar{ margin:0 !important; height:12px !important; }
	body.catx-on.catx-list-normal tr.lazy_stub .lazy_skel_lines .lazy_skel_bar:nth-child(1){ width:38% !important; }
	body.catx-on.catx-list-normal tr.lazy_stub .lazy_skel_lines .lazy_skel_bar:nth-child(2){ width:68% !important; }
	body.catx-on.catx-list-normal tr.lazy_stub .lazy_skel_lines .lazy_skel_bar:nth-child(3){ width:24% !important; }
}

/* ==================== 검색 필터 드롭다운 화살표 ============================ cx-filter-caret
 * 필터의 드롭다운은 두 종류다.
 *   - bootstrap-select 가 만든 것(시/도, 매물종류, 방, 화장실 …) → .bs-caret 로 화살표가 있다
 *   - 직접 만든 것(금액, 면적, 층, 주차, 전력, 호이스트, 경매 유찰 횟수·매각 기일, 고객 …)
 *     → DIV.btn-center.dropdown-toggle 인데 화살표 마크업이 아예 없다
 * 같은 필터인데 어떤 건 화살표가 있고 어떤 건 없어서, 누를 수 있는 것인지 알기 어렵다.
 * 마크업을 건드리지 않고 ::after 로 같은 모양을 그린다.
 * 값은 정상 화살표에서 실측한 그대로 — 4px 삼각형, 우측 12px, #4d5f76.
 * 버튼의 padding-right 가 이미 22px 라 글자와 겹치지 않는다. */
body.catx-on #form_search .btn-center.dropdown-toggle{ position:relative !important; }
body.catx-on #form_search .btn-center.dropdown-toggle::after{
	content:''; position:absolute; top:50%; right:12px; margin-top:-2px;
	width:0; height:0;
	border-top:4px dashed #4d5f76;
	border-right:4px solid transparent;
	border-left:4px solid transparent;
	pointer-events:none;
}

/* ==================== 목록 행 레이아웃 격리 =================================
 * 지연채움으로 행 하나를 넣으면 표 전체 레이아웃이 다시 돈다. 비용은 '표에 살아있는
 * 행 수' 에 비례해서, 스크롤로 행이 쌓일수록 채울 때마다 점점 더 끊겼다.
 * (dev 실측 — 살아있는 행 118개에서 12행 채움이 187ms)
 * contain:layout 은 행 안쪽 레이아웃을 바깥과 분리해 이 전파를 끊는다. 실측 -44%.
 * paint 는 넣지 않는다 — 넣으면 행 밖으로 펼쳐지는 액션바 드롭다운이 잘린다.
 * size 도 넣지 않는다 — 행 높이가 내용에 따라 167~247px 로 달라져야 한다.
 * ========================================================================== */
@media (min-width:993px){
	body.catx-on.catx-list-normal .list_table_pc_zone > tbody > tr[data-id]{
		contain: layout style;
	}
}

/* ==================== 본문 페이드인 =========================================
 * 관리자 페이지는 HTML 이 스트리밍되는 대로 그려져서, 스타일이 잡히기 전 모습이
 * 잠깐 보였다가 제자리를 찾는다. 매물 목록에서 하던 것과 같은 방식으로 본문이
 * 다 만들어진 뒤 0.4초에 걸쳐 띄운다. (0.4s 는 원래 목록이 쓰던 jQuery
 * animate() 기본값)
 *
 * 감추는 건 body[data-cx-fade-armed] 속성이 붙었을 때뿐이고, 그 속성은 본문 div 직후의
 * 인라인 스크립트가 붙인다. (클래스로 하면 떼는 순간 카테고리형 CSS 전체를 다시 계산해 0.1초가량 걸린다.)
 * 스크립트가 돌지 않는 환경에서는 속성이 없으므로
 * 페이지가 감춰진 채로 남는 일이 없다. 해제는 admin_footer.php 첫머리(본문
 * </div> 직후) 에서 하고, load 와 3초 타이머를 안전장치로 둔다.
 *
 * opacity 는 레이아웃에 영향을 주지 않으므로, 이 사이에 크기를 재는 스크립트가
 * 있어도 값은 그대로다.
 * ========================================================================== */
@keyframes cxFadeFailsafe{ to{ opacity:1; content-visibility:visible; } }
body.catx-on #admin_wrap .admin_main_wrap{ transition:opacity .4s ease; }
/* 등록폼은 폼 스크립트의 jQuery animate 도 0.15초다. 이 transition 을 끄면 두 겹이던 페이드가 한 겹이 되어
   드러나는 모습이 달라졌으므로(색이 한 번 바뀌어 보임), 끄지 않고 같은 0.15초로 맞춘다.
   cx-has-itemadd 는 등록폼이 본문을 드러내기 직전(revealItemFormEarly)에 붙는다. */
body.catx-on.cx-has-itemadd #admin_wrap .admin_main_wrap{ transition-duration:.15s; }
/* 등록폼이 숨겨져 있는 동안(페이지를 읽는 중)에는 브라우저가 본문 안쪽 스타일·레이아웃을 계산하지 않게 한다.
   카테고리형 CSS 는 규칙이 많아 전체 재계산이 한 번에 약 0.08초(일반형 0.002초)인데, 페이지를 읽는 동안
   브라우저가 틈틈이 숨겨진 폼(요소 1만 개)까지 다시 계산해 사용자 PC 에서 파싱이 2초까지 늘었다.
   드러낼 때(data-cx-fade-armed 해제) 한 번만 계산한다. 스크립트가 크기를 물으면 그 부분은 그때 계산된다. */
body.catx-on.cx-has-itemadd[data-cx-fade-armed] #admin_wrap .admin_main_wrap{ content-visibility:hidden; }
body.catx-on[data-cx-fade-armed] #admin_wrap .admin_main_wrap{
	opacity:0;
	/* 4초 뒤 강제 노출 — JS 가 어떤 이유로든 해제를 못 해도 화면이 안 뜨는 일은 없어야 한다.
	   CSS 애니메이션은 인라인 style 보다 우선하므로 JS 없이도 반드시 걸린다.
	   정상 경로에서는 0.5초 안에 클래스가 빠져 이 애니메이션 자체가 사라진다. */
	animation:cxFadeFailsafe .3s linear 4s forwards;
}
/* 직원 업무 현황 카드 */
body.catx-on .catxd-stcards{display:flex;flex-direction:column;gap:10px;}
body.catx-on .catxd-stcard{flex-shrink:0;border:1px solid var(--cx-line-soft);border-radius:12px;padding:13px 14px;background:var(--cx-panel,#fff);min-width:0;}
body.catx-on .catxd-stcard-top{display:flex;align-items:center;gap:12px;min-width:0;}
body.catx-on .catxd-stcard .catxd-stname{flex:1;min-width:0;}
body.catx-on .catxd-stcard .catxd-stpic{width:36px;height:36px;border-radius:50%;}
body.catx-on .catxd-stcard .catxd-stnm{font-size:14px;font-weight:600;}
body.catx-on .catxd-stcard .catxd-stmail{font-size:var(--dash-font-11_5, 11.5px);}
body.catx-on .catxd-stcard-access{display:flex;align-items:center;gap:10px;flex-shrink:0;}
body.catx-on .catxd-stcard-last{display:flex;flex-direction:column;gap:3px;text-align:right;font-size:var(--dash-font-11_5, 11.5px);color:var(--cx-body);white-space:nowrap;}
body.catx-on .catxd-stcard-last small{font-size:var(--dash-font-10, 10px);color:var(--cx-sub2);}
body.catx-on .catxd-stcard-nohistory{color:var(--cx-sub);}
body.catx-on .catxd-stcard .catxd-stlogout{margin-left:0;}
body.catx-on .catxd-stoffline{display:inline-flex;align-items:center;justify-content:center;gap:4px;padding:0 7px;height:28px;box-sizing:border-box;border:1px solid #d1d5db;border-radius:8px;background:#f3f4f6;color:#8b919b;font-size:var(--dash-font-11, 11px);white-space:nowrap;}
body.catx-on .catxd-stoffline svg{flex-shrink:0;}
body.catx-on .catxd-stcard-stats{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));margin:11px -12px -12px;border-top:1px solid var(--cx-line-soft);border-radius:0 0 12px 12px;background:color-mix(in oklab,var(--cx-row) 30%,transparent);overflow:hidden;}
body.catx-on .catxd-stcard-stats > div{display:flex;align-items:center;justify-content:space-between;gap:6px;padding:9px 10px;min-width:0;}
body.catx-on .catxd-stcard-stats > div+div{border-left:1px solid var(--cx-line-soft);}
body.catx-on .catxd-stcard-stats span{font-size:var(--dash-font-11, 11px);color:var(--cx-sub);white-space:nowrap;}
body.catx-on .catxd-stcard-stats b{font-size:17px;font-weight:900;color:var(--cx-k-blue);}
/* 숫자: 0이 아니면 파랑, 0이면 회색 */
body.catx-on .catxd-stcard-stats b.is-zero{color:color-mix(in oklab, var(--cx-sub) 58%, var(--cx-panel));}

body.catx-on .catxd-stcard{padding:12px;overflow:hidden;}
body.catx-on .catxd-stcard-top{flex-wrap:nowrap;gap:8px;}
body.catx-on .catxd-stcard .catxd-stname{flex:1;min-width:0;gap:7px;}
body.catx-on .catxd-stcard-access{width:auto;justify-content:flex-end;gap:8px;}
body.catx-on .catxd-stcard-last{flex-direction:column;align-items:flex-end;gap:2px;text-align:right;}
body.catx-on .catxd-stcard-stats > div{flex-direction:column;align-items:flex-start;gap:3px;padding:9px 10px;line-height:1.25;}
body.catx-on .catxd-stcard .catxd-stmail{display:block;}
body.catx-on .catxd-stcard .catxd-stlogout{width:auto;height:28px;padding:0 7px;gap:4px;}
body.catx-on .catxd-stcard .catxd-stlogout > span{display:inline;}
@media(min-width:993px){
 body.catx-on .catxd-stcards{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));align-content:start;}
 body.catx-on .catxd-stcards > .catxd-empty{grid-column:1 / -1;}
}
@media(max-width:992px){
 body.catx-on .catxd-stcards{display:grid;grid-template-columns:minmax(0,1fr);}
 body.catx-on .catxd-stcard{padding:10px;}
 body.catx-on .catxd-stcard-top{gap:5px;}
 body.catx-on .catxd-stcard .catxd-stname{gap:5px;}
 body.catx-on .catxd-stcard .catxd-stpic{width:30px;height:30px;}
 body.catx-on .catxd-stcard-access{gap:5px;}
 body.catx-on .catxd-stcard-stats > div{padding:7px 6px;}
 body.catx-on .catxd-stcard-stats{margin:10px -10px -10px;}
 body.catx-on .catxd-stcard-stats span{font-size:var(--dash-font-10, 10px);}
}
@media(max-width:992px){
 body.catx-on .catxd-panel-body.catxd-scroll:has(> .catxd-stcards){flex:0 1 auto;max-height:380px;min-height:0;overflow-y:auto;overflow-x:hidden;overscroll-behavior-y:contain;}
}
/* 직원관리용 3행 상세 정보 */
body.catx-on .catxs-body{min-height:0;overflow-y:auto;overflow-x:hidden;}
body.catx-on .catxs-extra{margin-top:14px;}
body.catx-on .catxs-extra h3{font-size:var(--dash-font-12, 12px);font-weight:700;color:var(--cx-strong);margin:0 0 8px;display:flex;justify-content:space-between;align-items:center;}
body.catx-on .catxs-extra h3 a{font-size:var(--dash-font-10, 10px);font-weight:400;color:var(--cx-sub);}
body.catx-on .catxs-top{display:flex;align-items:center;gap:8px;padding:7px 4px;border-top:1px solid var(--cx-line-soft);text-decoration:none;color:var(--cx-strong);}
body.catx-on .catxs-top img,body.catx-on .catxs-photo{width:34px;height:34px;object-fit:cover;border-radius:7px;flex-shrink:0;background:var(--cx-row);display:flex;align-items:center;justify-content:center;}
body.catx-on .catxs-rank{width:17px;height:17px;border-radius:50%;background:var(--cx-accent);color:white;font-size:var(--dash-font-10, 10px);display:flex;align-items:center;justify-content:center;flex-shrink:0;}
body.catx-on .catxs-item{flex:1;min-width:0;}
body.catx-on .catxs-item strong,body.catx-on .catxs-item small{display:block;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}
body.catx-on .catxs-item strong{font-size:13px;}
body.catx-on .catxs-item small{font-size:var(--dash-font-12, 12px);color:var(--cx-sub);margin-top:3px;}
body.catx-on .catxs-top b{display:inline-flex;align-items:center;gap:3px;font-size:var(--dash-font-11, 11px);font-weight:700;white-space:nowrap;padding:3px 8px;border-radius:20px;background:color-mix(in oklab,var(--cx-accent) 14%,transparent);color:var(--cx-accent-text);}
body.catx-on .catxs-top b svg{opacity:.85;flex-shrink:0;}
body.catx-on .catxs-today{display:block;font-size:var(--dash-font-10, 10px);font-weight:400;color:var(--cx-sub);margin-top:3px;}
body.catx-on .catxs-inquiries{border:1px solid var(--cx-line-soft);border-radius:8px;overflow:hidden;}
body.catx-on .catxs-inquiry{display:grid;grid-template-columns:70px 55px minmax(0,1fr) 43px;align-items:center;gap:5px;padding:7px 6px;border-bottom:1px solid var(--cx-line-soft);font-size:var(--dash-font-12, 12px);color:var(--cx-body);text-decoration:none;}
body.catx-on .catxs-inquiry:last-child{border-bottom:0;}
body.catx-on .catxs-inquiry > span{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}
body.catx-on .catxs-inquiry-head{background:var(--cx-row);color:var(--cx-sub);}
body.catx-on .catxs-inquiry em{font-style:normal;text-align:center;padding:3px;border-radius:4px;}
body.catx-on .catxs-inquiry .is-pending{background:#fff0f2;color:#ff5b6b;}
body.catx-on .catxs-inquiry .is-confirmed{background:#edf3ff;color:#4d8dff;}
body.catx-on a.catxs-inquiry{cursor:pointer;}
body.catx-on a.catxs-inquiry:hover{background:var(--cx-hover-bg);}
/* 최근 문의 패널 상단: 미처리 알림 3종 1줄 칩(--chip 인라인 지정) */
body.catx-on .catxd-alertline{ display:flex; gap:6px; margin-bottom:10px; }
body.catx-on .catxd-alertchip{ flex:1; min-width:0; display:flex; flex-direction:column; align-items:flex-start; gap:4px; padding:9px 11px; border-radius:10px; background:color-mix(in oklab, var(--chip) 9%, var(--cx-card)); border:1px solid color-mix(in oklab, var(--chip) 26%, transparent); text-decoration:none; transition:background .12s,border-color .12s; }
body.catx-on .catxd-alertchip:hover{ background:color-mix(in oklab, var(--chip) 16%, var(--cx-card)); border-color:color-mix(in oklab, var(--chip) 44%, transparent); }
body.catx-on .catxd-alertchip-l{ display:flex; align-items:center; gap:4px; font-size:var(--dash-font-12_5, 12.5px); font-weight:600; color:var(--cx-sub); white-space:nowrap; overflow:hidden; text-overflow:ellipsis; max-width:100%; }
body.catx-on .catxd-alertchip-l svg{ flex-shrink:0; }
body.catx-on .catxd-alertchip b{ font-size:clamp(17px,2vw,22px); font-weight:700; color:var(--chip); font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace; line-height:1.1; }
body.catx-on .catxs-need{display:flex;align-items:center;gap:9px;padding:10px 7px;border:1px solid var(--cx-line-soft);border-radius:9px;margin-bottom:6px;}
body.catx-on .catxs-need-icon{padding:6px;border-radius:8px;background:var(--catxs-need-bg);color:var(--catxs-need-color);display:flex;}
body.catx-on .catxs-need-icon svg{stroke-width:1.9;}
body.catx-on .catxs-need > span:nth-child(2){flex:1;min-width:0;}
body.catx-on .catxs-need strong{display:block;font-size:var(--dash-font-11, 11px);color:var(--cx-strong);}
body.catx-on .catxs-need small{display:block;font-size:var(--dash-font-10, 10px);color:var(--cx-sub);margin-top:4px;}
body.catx-on .catxs-need b{font-size:14px;color:var(--catxs-need-color);white-space:nowrap;}
body.catx-on .catxs-workbody{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;align-content:start;}
body.catx-on .catxs-workbody > .catxd-work-pair{display:contents;}
body.catx-on .catxs-workbody .catxd-work{margin:0!important;flex-wrap:wrap;}
body.catx-on .catxs-workbody > .catxs-extra{grid-column:1 / -1;margin-top:5px;}
body.catx-on .catxs-bar-count{position:absolute;top:-14px;left:50%;transform:translateX(-50%);font-size:var(--dash-font-9, 9px);color:var(--cx-sub);white-space:nowrap;}
body.catx-on .catxs-body .catxd-vc-bar{position:relative;}
body.catx-on .catxs-body .catxd-visit-chart{padding:22px 10px 8px;border:1px solid var(--cx-line-soft);border-radius:10px;background:color-mix(in oklab,var(--cx-row) 40%,white);}
@media(max-width:992px){body.catx-on .catxs-body{overflow:visible;} body.catx-on .catxs-body .catxd-visit-chart{display:flex;}}
/* 상세 정보가 있는 3행은 내용 전체를 표시하고 2행 목록만 내부 스크롤한다. */
body.catx-on .catxd-wrap:has(.catxs-body) .catxs-body{overflow:visible;min-height:auto;}
@media(min-width:1181px){
 body.catx-on .catxd-wrap:has(.catxs-body){height:auto;min-height:calc(100dvh - var(--cx-topbar-h));}
 body.catx-on .catxd-wrap:has(.catxs-body) .catxd-row-staff{flex:1 0 clamp(220px,26vh,300px);height:clamp(220px,26vh,300px);min-height:0;}
 body.catx-on .catxd-wrap:has(.catxs-body) .catxd-row3{flex:0 0 auto;min-height:min-content;align-items:stretch;}
 body.catx-on .catxd-wrap:has(.catxs-body) .catxd-row3 > .catxd-panel{min-height:0;max-height:355px;display:flex;flex-direction:column;overflow:hidden;}
 body.catx-on .catxd-wrap:has(.catxs-body) .catxd-row3 > .catxd-panel > .catxd-panel-body{flex:1;min-height:0;overflow-y:auto;}
}
/* 3행의 여유 높이를 최근 문의와 업무 요약에 배분한다. */
@media(min-width:993px){
 body.catx-on .catxs-body:has(> .catxs-extra .catxs-inquiries){display:flex;flex-direction:column;}
 body.catx-on .catxs-body:has(> .catxs-extra .catxs-inquiries) > .catxd-alert{flex-shrink:0;}
 body.catx-on .catxs-body > .catxs-extra:has(.catxs-inquiries){display:flex;flex-direction:column;flex:1;}
 body.catx-on .catxs-inquiries{flex:1;display:flex;flex-direction:column;}
 body.catx-on .catxs-inquiries > a.catxs-inquiry{flex:1;min-height:34px;box-sizing:border-box;}
 body.catx-on .catxs-inquiry-head{flex-shrink:0;}
 body.catx-on .catxs-workbody{grid-template-rows:minmax(44px,1fr) minmax(44px,1fr) auto;align-content:stretch;}
 body.catx-on .catxs-workbody .catxd-work{align-content:center;}
 body.catx-on .catxs-workbody .catxs-need:last-child{margin-bottom:0;}
}

body.catx-on .catxs-need-due{--catxs-need-color:#5b7cff;--catxs-need-bg:#edf4ff;}
body.catx-on .catxs-need-missing{--catxs-need-color:#9b7bff;--catxs-need-bg:#f3edff;}
body.catx-on .catxs-need-stale{--catxs-need-color:#ffa32e;--catxs-need-bg:#fff3e3;}

/* Shared Nestable move control, including rows detached into the drag layer. */
html body.catx-on .dd-item > .dd3-handle{background:#edf3fc!important;color:transparent!important;text-indent:-9999px;cursor:grab!important;}
html body.catx-on .dd-item > .dd3-handle > i{display:none!important;}
html body.catx-on .dd-item > .dd3-handle::before{content:''!important;display:block!important;position:absolute!important;left:50%!important;top:50%!important;width:14px!important;height:18px!important;margin:0!important;padding:0!important;border:0!important;transform:translate(-50%,-50%)!important;background:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='14' height='18' viewBox='0 0 14 18'%3E%3Cpath fill='%2325364b' d='M7 2 12 7H2zM7 16 2 11h10z'/%3E%3C/svg%3E") center/14px 18px no-repeat!important;}
html body.catx-on .dd-item > .dd3-handle::after{display:none!important;content:none!important;}
html body.catx-on .dd-dragel .dd3-handle{cursor:grabbing!important;}

/* ============================================================================
 * 직원관리용(40) 전용 가독성·시인성 개선 (중장년 사용자 대상)
 * 스코프: .catxd-wrap — catx 대시보드 3종 전체(직원관리용 40의 관리자/직원 두 분기,
 *         매물관리용 41 .catxi-item, 매물연동용 42 .catxi-sync). 헤더·매물목록 등 공통 페이지는 제외.
 * 원칙: 레이아웃·크기·구조·기능 불변. 색상 대비·테두리·그림자·굵기·hover 만 소폭 조정.
 * 방식: 공통 토큰을 덮어쓰지 않고 40 래퍼에 CSS 변수만 재정의 → 하위로만 전파(라이트/다크 각각).
 * ==========================================================================*/
/* 다크: 블루를 조금 더 선명하게, 카드 경계 약간 또렷하게 */
body.catx-on .catxd-wrap{
	--cx-accent:#3b82f6;      /* 기존 #4d8dff → 조금 더 맑고 선명한 블루 */
	--cx-accent-v:#3b82f6;    /* KPI 블루 아이콘 톤 일치 */
	--cx-line: rgba(190,214,240,.26);
	--cx-line2: rgba(190,214,240,.38);
	/* 상단 KPI 카드별 포인트 색(코드 글씨 + 숫자 공용) — 다크는 배경이 어두우므로 밝은 톤 */
	--cx-k-blue:#60a5fa; --cx-k-pink:#f472b6; --cx-k-green:#34d399;
	--cx-k-orange:#fb923c; --cx-k-violet:#a78bfa; --cx-k-red:#f87171;
}
/* 라이트: 밝고 산뜻하게 — 카드 경계·그림자 강화, 본문/보조 텍스트 대비 개선 */
body.catx-on.catx-light .catxd-wrap{
	--cx-accent:#3b82f6;
	--cx-accent-v:#3b82f6;
	--cx-line: rgba(90,120,160,.30);      /* 카드 경계 더 또렷(부드러운 블루그레이) */
	--cx-line2: rgba(90,120,160,.42);
	--cx-line-soft: rgba(90,120,160,.18); /* 리스트 divider 살짝 선명 */
	--cx-shadow: 0 2px 5px rgba(30,60,100,.07), 0 5px 12px rgba(30,60,100,.05);
	--cx-body:#31435b;   /* 본문 살짝 진하게 */
	--cx-sub:#48596f;    /* 보조 너무 연하지 않게 */
	/* 상단 KPI 카드별 포인트 색 — 밝고 선명하되 흰 배경에서 눈부시지 않게(채도 과하지 않은 중간톤) */
	--cx-k-blue:#3b82f6; --cx-k-pink:#ec4899; --cx-k-green:#059669;
	--cx-k-orange:#f97316; --cx-k-violet:#8b5cf6; --cx-k-red:#ef4444;
}
/* KPI 카드 hover: 카드 이동(translateY) 제거 → 경계 강조 + 아주 옅은 블루 배경으로 클릭 인지성만 */
body.catx-on .catxd-wrap .catxd-kpi:hover{ transform:none; border-color:var(--cx-hover-line); background:color-mix(in oklab, var(--cx-accent) 6%, var(--cx-card)); }
/* [41·42] 상단 카드(.catxi-kpi) hover 도 동일하게 카드 이동 제거 → 경계+옅은 배경만.
 * 클릭 불가 카드(.catxi-kpi-static)는 강조 대상이 아니므로 제외 */
body.catx-on .catxd-wrap .catxi-kpi:not(.catxi-kpi-static):hover{ transform:none; border-color:var(--cx-hover-line); background:color-mix(in oklab, var(--cx-accent) 6%, var(--cx-card)); }

/* 모바일 catx 관리자 페이징: 매물목록의 28px 버튼을 공통 기준으로 사용한다.
 * 각 화면의 페이징 위치(매물목록 하단 고정 등)는 그대로 두고 컨트롤 모양만 통일한다. */
@media (max-width:992px){
	html body.catx-on #admin_wrap ul:is(.pagination,.log_pagination,.pagination_meeting),
	html body.catx-on .modal ul:is(.pagination,.log_pagination,.pagination_meeting){
		display:flex !important; align-items:center !important; justify-content:center !important;
		flex-wrap:wrap !important; gap:6px !important; width:100% !important;
		margin:0 !important; padding:0 !important; list-style:none !important;
	}
	html body.catx-on #admin_wrap ul:is(.pagination,.log_pagination,.pagination_meeting) > li,
	html body.catx-on .modal ul:is(.pagination,.log_pagination,.pagination_meeting) > li{
		display:block !important; float:none !important; margin:0 !important; padding:0 !important;
	}
	/* 숫자 5개 제한과 각 화면의 기존 숨김 상태가 위 display:block에 의해 풀리지 않도록 한다. */
	html body.catx-on #admin_wrap ul:is(.pagination,.log_pagination,.pagination_meeting,.customer_pagination) > li:is(.catx-page-hidden,.album-page-mobile-hidden,.system-page-hidden,[hidden],[style*="display: none"]),
	html body.catx-on .modal ul:is(.pagination,.log_pagination,.pagination_meeting,.customer_pagination) > li:is(.catx-page-hidden,.album-page-mobile-hidden,.system-page-hidden,[hidden],[style*="display: none"]){
		display:none !important;
	}
	html body.catx-on #admin_wrap ul:is(.pagination,.log_pagination,.pagination_meeting) > li > :is(a,span,button),
	html body.catx-on .modal ul:is(.pagination,.log_pagination,.pagination_meeting) > li > :is(a,span,button){
		display:inline-flex !important; align-items:center !important; justify-content:center !important;
		float:none !important; box-sizing:border-box !important; min-width:28px !important;
		height:28px !important; min-height:28px !important; max-height:28px !important;
		margin:0 !important; padding:0 7px !important; border:1px solid #dbe4f0 !important;
		border-radius:7px !important; background:#fff !important; color:#33415f !important;
		font-size:13px !important; font-weight:400 !important; line-height:1 !important;
		text-decoration:none !important; box-shadow:none !important;
	}
	html body.catx-on #admin_wrap ul:is(.pagination,.log_pagination,.pagination_meeting) > li > :is(a,span,button)::before,
	html body.catx-on #admin_wrap ul:is(.pagination,.log_pagination,.pagination_meeting) > li > :is(a,span,button)::after,
	html body.catx-on .modal ul:is(.pagination,.log_pagination,.pagination_meeting) > li > :is(a,span,button)::before,
	html body.catx-on .modal ul:is(.pagination,.log_pagination,.pagination_meeting) > li > :is(a,span,button)::after{
		content:none !important; display:none !important;
	}
	html body.catx-on #admin_wrap ul:is(.pagination,.log_pagination,.pagination_meeting) > li > :is(a,button):hover,
	html body.catx-on .modal ul:is(.pagination,.log_pagination,.pagination_meeting) > li > :is(a,button):hover{
		border-color:#bfd0e8 !important; background:#f2f6fc !important; color:#1e3a63 !important;
	}
	html body.catx-on #admin_wrap ul:is(.pagination,.log_pagination,.pagination_meeting) > li.active > :is(a,span,button),
	html body.catx-on #admin_wrap ul:is(.pagination,.log_pagination,.pagination_meeting) > li.on > :is(a,span,button),
	html body.catx-on #admin_wrap ul:is(.pagination,.log_pagination,.pagination_meeting) > li > :is(a,span,button):is(.active,.on,[aria-current="page"]),
	html body.catx-on .modal ul:is(.pagination,.log_pagination,.pagination_meeting) > li.active > :is(a,span,button),
	html body.catx-on .modal ul:is(.pagination,.log_pagination,.pagination_meeting) > li.on > :is(a,span,button),
	html body.catx-on .modal ul:is(.pagination,.log_pagination,.pagination_meeting) > li > :is(a,span,button):is(.active,.on,[aria-current="page"]){
		border-color:#3b82f6 !important; background:#3b82f6 !important; color:#fff !important;
		font-size:13px !important; font-weight:600 !important;
	}
	html body.catx-on #admin_wrap ul:is(.pagination,.log_pagination,.pagination_meeting) > li.disabled > :is(a,span,button),
	html body.catx-on .modal ul:is(.pagination,.log_pagination,.pagination_meeting) > li.disabled > :is(a,span,button){
		color:#a6b1c2 !important; background:#f8fafc !important; pointer-events:none !important;
	}
	/* Standalone list pagers (for example, field-visit history) sit after the scrolling list.
	 * Keep that existing pager in view without moving its DOM or intercepting page links. */
	html body.catx-on #admin_wrap .section_whole > .container-fluid > .table-responsive > .text-center:has(> ul.pagination){
		position:fixed !important; left:0 !important; right:0 !important; bottom:0 !important;
		z-index:2000 !important; width:100% !important; min-height:46px !important;
		display:flex !important; align-items:center !important; justify-content:center !important;
		margin:0 !important; padding:7px 8px max(7px, env(safe-area-inset-bottom)) !important;
		box-sizing:border-box !important; border-top:1px solid #dbe4f0 !important;
		background:#fff !important; box-shadow:0 -2px 8px rgba(0,0,0,.08) !important;
	}
	html body.catx-on.catx-modal-vis #admin_wrap .section_whole > .container-fluid > .table-responsive > .text-center:has(> ul.pagination){ z-index:1000 !important; }
	html body.catx-on #admin_wrap .section_whole > .container-fluid > .table-responsive:has(> .text-center > ul.pagination) > #list_box{
		padding-bottom:56px !important; box-sizing:border-box !important;
	}
}


/* 모바일 전용: 대시보드(40/41/42) 본문 폰트 일괄 -1px (자동 생성, 원본 규칙과 1:1 대응) */
@media (max-width:700px){
	body.catx-on .catxi-kpi-name{ font-size:var(--dash-font-11, 11px); }
	body.catx-on .catxi-kpi-hint{ font-size:var(--dash-font-9_5, 9.5px); }
	body.catx-on .catxi-kpi-btn{ font-size:var(--dash-font-10, 10px); }
	body.catx-on .catxi-kpi-val b{ font-size:clamp(18px,2vw,23px); }
	body.catx-on .catxi-kpi-val em{ font-size:var(--dash-font-11, 11px); }
	body.catx-on .catxi-sync .catxs-statrow > .catxs-stat-lb{ font-size:var(--dash-font-11_5, 11.5px); }
	body.catx-on .catxi-chip{ font-size:var(--dash-font-10_5, 10.5px); }
	body.catx-on .catxi-lname{ font-size:var(--dash-font-11_5, 11.5px); }
	body.catx-on .catxi-lmeta{ font-size:var(--dash-font-10, 10px); }
	body.catx-on .catxi-statrow > span:first-child{ font-size:var(--dash-font-11_5, 11.5px); }
	body.catx-on .catxi-statrow b{ font-size:13px; }
	body.catx-on .catxi-statrow em{ font-size:var(--dash-font-10, 10px); }
	body.catx-on .catxi-addbtn{ font-size:var(--dash-font-11, 11px); }
	body.catx-on .catxi-sync .catxi-summary-row .catxs-statrow > .catxs-stat-lb{ font-size:var(--dash-font-11_5, 11.5px); }
	body.catx-on .catxi-sync .catxi-summary-row .catxs-statrow > b{ font-size:13px; }
	body.catx-on .catxi-sync .catxi-summary-row .catxs-statrow > em{ font-size:var(--dash-font-10, 10px); }
	body.catx-on .catxi-sync .catxi-summary-row .catxi-addbtn{ font-size:var(--dash-font-11, 11px); font-weight:600; }
	body.catx-on .catxi-legend{ font-size:var(--dash-font-10, 10px); }
	body.catx-on .catxi-legend .cap{ font-size:var(--dash-font-10_5, 10.5px); }
	body.catx-on .catxi-chart-days span{ font-size:var(--dash-font-8_5, 8.5px); }
	body.catx-on .catxi-item .catxi-statbox-label{ font-size:var(--dash-font-10_5, 10.5px); }
	body.catx-on .catxi-item .catxi-statbox-val b{ font-size:17px; }
	body.catx-on .catxi-item .catxi-statbox-val em{ font-size:var(--dash-font-9_5, 9.5px); }
	body.catx-on .catxi-bucket .bl{ font-size:var(--dash-font-10_5, 10.5px); }
	body.catx-on .catxi-bucket .bv b{ font-size:clamp(16px,1.9vw,20px); }
	body.catx-on .catxi-bucket .bv em{ font-size:var(--dash-font-10, 10px); }
	body.catx-on .catxi-cli-top .cl{ font-size:var(--dash-font-11, 11px); }
	body.catx-on .catxi-cli-top .cv{ font-size:clamp(17px,1.7vw,20px); }
	body.catx-on .catxi-cli-top .cu{ font-size:var(--dash-font-10_5, 10.5px); }
	body.catx-on .catxi-tag{ font-size:var(--dash-font-9_5, 9.5px); }
	body.catx-on .catxi-rank{ font-size:var(--dash-font-10_5, 10.5px); }
	body.catx-on .catxi-views b{ font-size:var(--dash-font-12, 12px); }
	body.catx-on .catxi-views em{ font-size:var(--dash-font-9_5, 9.5px); }
	body.catx-on .catxd-wrap .catxi-cli3-v b{ font-size:17px; }
	body.catx-on .catxd-wrap .catxi-cli3-v em{ font-size:var(--dash-font-9, 9px); }
	body.catx-on .catxd-wrap .catxi-cli3-l{ font-size:var(--dash-font-10, 10px); }
	body.catx-on .catxi-sync .catxi-summary-row .catxi-cli3-l{ font-size:var(--dash-font-10, 10px); }
	body.catx-on .catxi-item .catxi-cli-type{ font-size:var(--dash-font-9_5, 9.5px); }
	body.catx-on .catxi-sync .catxi-worker{ font-size:var(--dash-font-9_5, 9.5px); }
	body.catx-on .catxi-item .catxi-aged{ font-size:var(--dash-font-9_5, 9.5px); }
	body.catx-on .catxi-item .catxi-aged b{ font-size:var(--dash-font-11, 11px); }
	body.catx-on .catxi-item .catxi-views b{ font-size:var(--dash-font-11, 11px); }
	body.catx-on .catxi-item .catxi-views em{ font-size:var(--dash-font-9, 9px); }
	body.catx-on .catxi-ago{ font-size:var(--dash-font-9_5, 9.5px); }
	body.catx-on .catxi-badge{ font-size:var(--dash-font-9_5, 9.5px); }
	body.catx-on .catxi-brow-id{ font-size:var(--dash-font-9_5, 9.5px); }
	body.catx-on .catxi-brow-no{ font-size:var(--dash-font-9, 9px); }
	body.catx-on .catxi-brow-nno{ font-size:var(--dash-font-9, 9px); }
	body.catx-on .catxi-brow-t{ font-size:var(--dash-font-11_5, 11.5px); }
	body.catx-on .catxi-brow-a{ font-size:var(--dash-font-10, 10px); }
	body.catx-on .catxi-brow-date{ font-size:var(--dash-font-10_5, 10.5px); }
	body.catx-on .catxi-dotv{ font-size:var(--dash-font-9, 9px); }
	body.catx-on .catxi-sumbox .l{ font-size:var(--dash-font-10, 10px); }
	body.catx-on .catxi-sync .catxi-sumrow .catxi-sumbox .l{ font-size:var(--dash-font-12_5, 12.5px); font-weight:600; }
	body.catx-on .catxi-sumbox .v b{ font-size:clamp(14px,1.7vw,18px); }
	body.catx-on .catxi-sumbox .v em{ font-size:var(--dash-font-9_5, 9.5px); }
	body.catx-on .catxi-wrow-t{ font-size:var(--dash-font-11_5, 11.5px); }
	body.catx-on .catxi-wrow-d{ font-size:var(--dash-font-10, 10px); }
	body.catx-on .catxi-sol-nm{ font-size:var(--dash-font-11_5, 11.5px); }
	body.catx-on .catxi-sol-vl{ font-size:14px; }
	body.catx-on .catxi-sol-vl em{ font-size:var(--dash-font-10, 10px); }
	body.catx-on .catxi-sol-pct{ font-size:var(--dash-font-9_5, 9.5px); }
	body.catx-on .catxi-mqbtn{ font-size:var(--dash-font-11, 11px); }
	body.catx-on .catxi-sync .catxi-mquick .catxi-mqbtn{ font-size:var(--dash-font-12, 12px); }
	body.catx-on .catxi-mfbtn{ font-size:var(--dash-font-11, 11px); }
	body.catx-on .catxd-sthead{ font-size:var(--dash-font-10, 10px); }
	body.catx-on .catxd-strow{ font-size:var(--dash-font-11, 11px); }
	body.catx-on .catxd-stlast{ font-size:var(--dash-font-9, 9px); }
	body.catx-on .catxi-tab{ font-size:14px; }
	body.catx-on .catxi-itemno{ font-size:var(--dash-font-9_5, 9.5px); }
	body.catx-on .catxi-sync .catxd-info-btn{ font-size:var(--dash-font-10, 10px); }
	body.catx-on .catxi-kpi-name{ font-size:var(--dash-font-10, 10px); }
	body.catx-on .catxi-sync .catxi-adtoprow .catxi-kpi-name{ font-size:var(--dash-font-12, 12px); font-weight:600; }
	/* [모바일 전용] 매물관리용(41) 상단 문구 1px 확대 — 퀵버튼(매물등록/매물목록/고객목록)과
	 * KPI 라벨(전체·공개·비공개 매물/용량/만료일/잔여 문자수). 매물연동용(42)은 위 sync 규칙 유지. */
	body.catx-on .catxi-item .catxi-mqbtn{ font-size:var(--dash-font-12, 12px); }
	body.catx-on .catxi-item .catxi-kpigrid .catxi-kpi-name{ font-size:var(--dash-font-11, 11px); }
	body.catx-on .catxi-kpi-val b{ font-size:clamp(14px,4.4vw,18px); }
	body.catx-on .catxi-kpi-btn{ font-size:var(--dash-font-9, 9px); }
	body.catx-on .catxi-mini-l{ font-size:var(--dash-font-10_5, 10.5px); }
	body.catx-on .catxi-mini b{ font-size:16px; }
	body.catx-on .catxd-stcard .catxd-stnm{ font-size:13px; }
	body.catx-on .catxd-stcard .catxd-stmail{ font-size:var(--dash-font-10_5, 10.5px); }
	body.catx-on .catxd-stcard-last{ font-size:var(--dash-font-10_5, 10.5px); }
	body.catx-on .catxd-stcard-last small{ font-size:var(--dash-font-9, 9px); }
	body.catx-on .catxd-stoffline{ font-size:var(--dash-font-10, 10px); }
	body.catx-on .catxd-stcard-stats span{ font-size:var(--dash-font-10, 10px); }
	body.catx-on .catxd-stcard-stats b{ font-size:16px; }
	body.catx-on .catxd-stcard-stats span{ font-size:var(--dash-font-9, 9px); }
	body.catx-on .catxs-extra h3{ font-size:var(--dash-font-11, 11px); }
	body.catx-on .catxs-extra h3 a{ font-size:var(--dash-font-9, 9px); }
	body.catx-on .catxs-rank{ font-size:var(--dash-font-9, 9px); }
	body.catx-on .catxs-item strong{ font-size:var(--dash-font-12, 12px); }
	body.catx-on .catxs-item small{ font-size:var(--dash-font-11, 11px); }
	body.catx-on .catxs-top b{ font-size:var(--dash-font-10, 10px); }
	body.catx-on .catxs-today{ font-size:var(--dash-font-9, 9px); }
	body.catx-on .catxs-inquiry{ font-size:var(--dash-font-11, 11px); }
	body.catx-on .catxd-alertchip-l{ font-size:var(--dash-font-11_5, 11.5px); }
	body.catx-on .catxd-alertchip b{ font-size:clamp(16px,2vw,21px); }
	body.catx-on .catxs-need strong{ font-size:var(--dash-font-10, 10px); }
	body.catx-on .catxs-need small{ font-size:var(--dash-font-9, 9px); }
	body.catx-on .catxs-need b{ font-size:13px; }
	body.catx-on .catxs-bar-count{ font-size:var(--dash-font-8, 8px); }
}

/* 모바일 직원 업무 현황: 프로필/직원 정보/접속 상태를 상단에, 4개 집계를 하단에 배치 */
@media (max-width:700px){
	body.catx-on .catxd-stcard{
		padding:12px 12px 0;
		border-radius:16px;
	}
	body.catx-on .catxd-stcard-top{
		display:grid;
		grid-template-columns:44px minmax(0,1fr) auto;
		grid-template-rows:auto auto;
		column-gap:10px;
		row-gap:3px;
		align-items:center;
	}
	body.catx-on .catxd-stcard .catxd-stname,
	body.catx-on .catxd-stcard-access{
		display:contents;
	}
	body.catx-on .catxd-stcard .catxd-stpic{
		grid-column:1;
		grid-row:1 / 3;
		width:44px;
		height:44px;
		border-radius:50%;
	}
	body.catx-on .catxd-stcard .catxd-stnamewrap{
		grid-column:2;
		grid-row:1;
		align-self:end;
	}
	body.catx-on .catxd-stcard .catxd-stmail{
		display:block;
		margin-top:2px;
	}
	body.catx-on .catxd-stcard-last{
		grid-column:2;
		grid-row:2;
		align-self:start;
		flex-direction:row;
		align-items:center;
		gap:4px;
		min-width:0;
		text-align:left;
		white-space:nowrap;
		overflow:hidden;
	}
	body.catx-on .catxd-stcard-last > span{
		overflow:hidden;
		text-overflow:ellipsis;
	}
	body.catx-on .catxd-stcard .catxd-stlogout,
	body.catx-on .catxd-stcard .catxd-stoffline{
		grid-column:3;
		grid-row:1 / 3;
		align-self:center;
		width:auto;
		height:34px;
		padding:0 10px;
		gap:5px;
		border-radius:10px;
	}
	body.catx-on .catxd-stcard .catxd-stlogout > span{
		display:inline;
	}
	body.catx-on .catxd-stcard-stats{
		margin:10px -12px 0;
		border-radius:0 0 16px 16px;
	}
	body.catx-on .catxd-stcard-stats > div{
		align-items:flex-start;
		justify-content:center;
		gap:3px;
		min-height:56px;
		padding:7px 8px;
		box-sizing:border-box;
	}
	body.catx-on .catxd-stcard-stats span{
		font-size:var(--dash-font-10, 10px);
	}
}

/* ═══ [모바일 매물등록폼 / 매물목록] 좁은 폭에서 줄이 떨어지거나 요소가 튀는 문제 (catx 한정) ═══ */
@media (max-width:700px){
	/* (1) '로드뷰 공개' 가 화면 맨 위로 튀던 문제.
	 *  admin_item_form_v2_css.php 4345(@media max-width:365px) 가 .roadview_btn_group 에 position:absolute +
	 *  bottom:calc(100% + 4px); right:0 을 주는데, 짝이던 .ri_state_box 는 뒤쪽 5854 줄에서 position:relative 로
	 *  되돌려졌다. 그래서 로드뷰만 절대배치로 남아 위치 기준(포지션 조상)이 폼 전체가 되어 최상단으로 날아간다.
	 *  → .ri_state_box 와 동일하게 relative 흐름으로 되돌려 '리주소공개' 바로 뒤에 붙게 한다. */
	/* .ri_state_box 도 3657(absolute 시절)의 bottom/right 잔재가 relative 상태(5854가 relative 로 되돌림)에 남아
	 * 365px 이하에서 right:78px 만큼 왼쪽으로 밀려 '상세주소 표시' 라벨을 덮었다 → 오프셋을 전부 해제하고
	 * margin-left:auto 로 두 체크박스를 우측에 묶어 붙인다(시안과 동일 배치). */
	body.catx-on #form_item .form_box_wrap#form_location_info .location_address_box .form_table_box_wrap2 .address_detail_box .ri_state_box{
		position:relative !important; top:2px !important; right:auto !important; bottom:auto !important; left:auto !important;
		margin-left:auto !important; }
	body.catx-on #form_item .form_box_wrap#form_location_info .location_address_box .form_table_box_wrap2 .address_detail_box .roadview_btn_group{
		position:relative !important; top:2px !important; right:auto !important; bottom:auto !important; left:auto !important;
		width:auto !important; margin-left:8px !important; }

	/* (2) 소재지 '중복 체크' 가 아랫줄로 떨어지던 문제 — 동/호수(.add_dong_ho) 고정폭 200px + 방정보 80px + 버튼이
	 *  한 줄 폭을 넘겼다. 동/호수를 남는 폭으로 계산해 세 요소가 항상 한 줄에 들어가게 한다(최소 120px 보장). */
	body.catx-on #form_item .form_box_wrap#form_location_info .location_address_box .location_address_box_L .add_dong_ho{
		width:calc(100% - 165px) !important; min-width:120px !important; }
}
@media (max-width:992px){
	/* (4) 상단 툴바가 [개수배지] / [정렬·필터·매물등록] 두 줄로 갈라지던 문제.
	 *  admin_item_v2.php 8896 이 .align_dropdown 폭을 JS 로 (툴바폭 - 242px) 로 고정하는데, 같은 줄에 있는
	 *  개수 배지(약 110px) 폭이 계산에서 빠져 있어 한 줄 합계가 항상 툴바폭을 넘겨 줄바꿈됐다.
	 *  → 인라인 width 를 무효화하고 남는 폭을 flex 로 채워 배지까지 한 줄에 유지한다. 필터의 margin-top:5px(인라인)도 해제. */
	body.catx-on .admin_itemList .item_header_mobile .item_header_L > .dropdown.align_dropdown{
		display:flex !important;
		align-items:center !important;
		gap:5px !important;
		flex:1 1 auto !important;
		width:auto !important;
		min-width:0 !important;
		margin:0 0 0 5px !important;
		float:none !important;
	}
	/* DOM 순서는 등록·필터·정렬이지만 화면에서는 정렬·필터·등록 순서로 배치하고,
	 * 등록 버튼은 남는 폭의 우측 끝에 고정한다. */
	body.catx-on .admin_itemList .item_header_mobile .item_header_L > .dropdown.align_dropdown > .btn_dropdown{
		order:1 !important; float:none !important; margin:0 !important;
	}
	body.catx-on .admin_itemList .item_header_mobile .item_header_L > .dropdown.align_dropdown > .mobile_search_btn{
		order:2 !important; float:none !important; margin:0 !important;
	}
	body.catx-on .admin_itemList .item_header_mobile .item_header_L > .dropdown.align_dropdown > .insert_btn{
		order:3 !important; float:none !important; margin:0 0 0 auto !important;
	}
	body.catx-on .admin_itemList .item_header_mobile .mobile_search_btn{ margin-top:0 !important; }
	/* 목록 스타일 2·3에서만 들어오는 내부 배경/10px 패딩을 제거한다.
	 * 카테고리형 모바일은 일반목록·엑셀목록 모두 같은 툴바 폭과 정렬을 사용한다. */
	body.catx-on .admin_itemList .item_header_mobile .item_header_L{
		display:flex !important;
		flex-flow:row wrap !important;
		width:100% !important;
		padding:0 !important;
		border-bottom:0 !important;
		background:transparent !important;
		box-sizing:border-box !important;
	}
}
@media (max-width:992px){
	/* (3) 반응형 매물목록에서는 필터 버튼이 29px 정사각형이므로 아이콘만 남긴다.
	 * 기존 440px 제한 때문에 441~992px에서 '필터' 문구가 세로로 깨졌다. */
	body.catx-on .admin_itemList .item_header_mobile .mobile_search_btn > span{ display:none !important; }
	body.catx-on .admin_itemList .item_header_mobile .mobile_search_btn{ width:auto !important; min-width:0 !important; max-width:none !important; padding-left:10px !important; padding-right:10px !important; text-align:center !important; }
	body.catx-on .admin_itemList .item_header_mobile .mobile_search_btn i{ margin-right:0 !important; }
}

@media (max-width:992px){
	/* (5) 매물등록/수정 폼 상단의 빈 여백(28px) 제거 — margin 이 아니라 패딩 두 개가 겹친 것.
	 *   .admin_main_wrap padding-top:12px (이 파일 2043, 목록 상단 여백용) + section.padder-v padding-top:16px (style.css 212)
	 *   → 등록폼(.itemAdd_box_wrap)이 있는 화면에서만 0 으로. 매물목록/다른 화면 여백은 그대로 둔다. */
	body.catx-on #admin_wrap .admin_main_wrap:has(.itemAdd_box_wrap){ padding-top:0 !important; }
	body.catx-on #admin_wrap .section_box_wrap.padder-v:has(.itemAdd_box_wrap){ padding-top:0 !important; }
}

@media (max-width:720px){
	/* (6) 직원관리용(40) 모바일 — 상단 KPI 카드 하단 설명 문구 축소(12.5px → 11px). 자동 -1px 일괄 축소에서 누락됐던 규칙. */
	body.catx-on .catxd-kpi-desc{ font-size:var(--dash-font-11, 11px); }
}

/* (7) 매물연동용(42) 매물/고객 현황 라벨 — 모바일에서만 짧은 문구로 전환(마크업은 둘 다 렌더, 표시만 교체) */
body.catx-on .catxi-sync .catxs-stat-lb .cxlb-short{ display:none; }
@media (max-width:700px){
	body.catx-on .catxi-sync .catxs-stat-lb .cxlb-full{ display:none; }
	body.catx-on .catxi-sync .catxs-stat-lb .cxlb-short{ display:inline; }
}

@media (max-width:700px){
	/* (8) 매물연동용(42) 네이버 발송 매물 목록 — 모바일에서 우측을 [광고상태 / 등록·발송일] 2단으로 쌓아
	 *  좌측 제목·주소가 쓰는 가로폭을 넓힌다. grid 로 배치(썸네일·본문은 2행 span). */
	body.catx-on .catxi-sync .catxi-brow{
		display:grid !important; grid-template-columns:auto minmax(0,1fr) auto; grid-template-rows:auto auto;
		column-gap:9px; row-gap:2px; align-items:center; }
	body.catx-on .catxi-sync .catxi-brow > .catxi-thumb-sq{ grid-column:1; grid-row:1 / span 2; }
	body.catx-on .catxi-sync .catxi-brow > .catxi-brow-main{ grid-column:2; grid-row:1 / span 2; min-width:0; }
	body.catx-on .catxi-sync .catxi-brow > .catxi-badge{ grid-column:3; grid-row:1; justify-self:end; }
	body.catx-on .catxi-sync .catxi-brow > .catxi-brow-date{ grid-column:3; grid-row:2; justify-self:end; text-align:right; line-height:1.4; }
}

/* (9) [iOS] 스크롤 고무줄(오버스크롤) 구간에 검은 띠가 보이던 문제.
 *  html 에 배경이 없으면 캔버스가 기본색으로 칠해지는데, 내부 스크롤러나 overflow:hidden 조합에서는
 *  body 배경이 캔버스로 전파되지 않는 경우가 있다 → html 에 페이지 배경을 직접 지정한다.
 *  (catx 는 서버에서 catx-light 를 붙여 라이트로 시작하고, catxToggleTheme 로 다크 전환 가능) */
html:has(body.catx-on){ background:#161f2c; }
html:has(body.catx-on.catx-light){ background:#dfe5ee; }

@media (max-width:992px){
	/* (10) 매물목록: 끝까지 스크롤해도 마지막 카드가 잘리던 문제.
	 *  목록은 html/body 를 100vh 로 잠그고 .admin_main_wrap 을 calc(100vh - 68px) 로 고정해 내부 스크롤한다.
	 *  그런데 모바일의 100vh 는 '주소창이 숨겨진 큰 뷰포트' 기준이라, 주소창이 보이는 동안 컨테이너가
	 *  실제 보이는 영역보다 주소창 높이(약 56~60px)만큼 커진다 → 하단이 화면 밖으로 밀려 더 스크롤되지 않는다.
	 *  (하단 고정 페이징은 실제 보이는 뷰포트 기준으로 붙어 잘린 영역을 한 번 더 가린다.)
	 *  → dvh(실제 보이는 높이)로 맞춘다. dvh 미지원 브라우저는 위의 100vh 규칙이 그대로 적용된다.
	 *  ※ 페이징 바 높이는 45px(패딩 8+8 + 링크 28 + 테두리 1)이고 .item_table_mobile 이 58px 를 확보하므로
	 *    하단 여백 자체는 부족하지 않다 — 잘림의 원인은 컨테이너 높이 쪽이다. */
	html:has(body.catx-on .item_table_mobile){ height:100dvh !important; max-height:100dvh !important; }
	body.catx-on:has(.item_table_mobile){ height:100dvh !important; max-height:100dvh !important; }
	body.catx-on #admin_wrap .admin_main_wrap:has(.admin_itemList){ height:calc(100dvh - 68px) !important; }
}

@media (max-width:992px){
	/* (11) 매물목록 모바일 카드: 층 ｜ 면적 사이 여백 축소.
	 *  기존 간격 = 구분자 좌우 margin 3px+3px + 인라인 요소 사이 공백문자(약 3px) + 면적 span 사이 2px.
	 *  구분자 margin 을 1px 로 줄이고, 공백문자만큼 음수 마진으로 흡수한다. */
	body.catx-on .item_table_mobile .cxm_floor_area .floor_wrap:not(:empty)::after{ margin:0 1px !important; }
	body.catx-on .item_table_mobile .cxm_floor_area .item_list_area_wrap{ margin-left:-2px !important; }
	body.catx-on .item_table_mobile .cxm_floor_area .item_list_area_wrap > span + span{ margin-left:1px !important; }
}

@media (max-width:992px){
	/* (12) 매물목록 모바일: 드롭다운(분석/업무 등) 트리거 버튼 — 눌러서 패널이 열려 있는 동안
	 *  테두리·글자를 accent(파랑)로, 배경은 아주 옅은 accent 로 바꿔 '지금 열려 있는 버튼'을 알 수 있게 한다.
	 *  누르는 순간 반응(:active)도 같은 색으로 준다. 크기·위치는 그대로. */
	body.catx-on .item_table_mobile .cxmab-ddtrig{ transition:border-color .12s ease, color .12s ease, background-color .12s ease !important; }
	body.catx-on .item_table_mobile .cxmab-ddtrig:active,
	body.catx-on .item_table_mobile .cxmab-dd.open > .cxmab-ddtrig{
		border-color:var(--cx-accent) !important;
		color:var(--cx-accent) !important;
		background:color-mix(in oklab, var(--cx-accent) 8%, var(--cx-card)) !important; }
	body.catx-on .item_table_mobile .cxmab-dd.open > .cxmab-ddtrig svg{ stroke:var(--cx-accent) !important; }
}

/* (13) PC 매물목록 액션바: 드롭다운이 열려 있는 동안 트리거의 화살표를 뒤집는다(▼ → ▲).
 *  글자(&#9660;)를 바꾸지 않고 회전만 시켜, 폰트/정렬이 흔들리지 않게 한다. 메뉴가 body 로 옮겨져도
 *  화살표는 트리거(.cxab-dd 안)에 남으므로 .cxab-dd.open 으로 그대로 잡힌다. */
body.catx-on .cxab-dd .cxab-cvt{ display:inline-block; transition:transform .14s ease; }
body.catx-on .cxab-dd.open .cxab-cvt{ transform:rotate(180deg); }

@media (max-width:992px){
	/* (14) 매물목록 모바일: 우측 버튼(계약서 등)의 드롭다운 메뉴가 화면 오른쪽으로 넘쳐 잘리던 문제.
	 *  헤더 JS(cxmFitMenu)가 열릴 때 넘침을 measure 해 이 클래스를 붙인다 → 트리거 오른쪽 기준으로 정렬.
	 *  메뉴가 화면보다 넓은 예외까지 대비해 최대폭도 제한한다. */
	body.catx-on .item_table_mobile .cxmab-ddmenu{ width:max-content !important; max-width:calc(100vw - 24px) !important; }
	body.catx-on .item_table_mobile .cxmab-ddmenu.cxmab-ddmenu-r{ left:auto !important; right:0 !important; }
	/* 계약서 등 앱 기본(Bootstrap) 드롭다운도 동일하게 — 넘칠 때만 오른쪽 기준 정렬 */
	body.catx-on .item_table_mobile .dropdown-menu.cxmab-ddmenu-r{ left:auto !important; right:0 !important; }
}

/* ═══ (15) 매물목록 사진 뷰어(#modal-photo) 스타일 개선 — catx 한정, 디자인만(구조·동작 불변) ═══
 *  기존 문제: 흰 패널(패딩 20px) 안에 '검은' 스테이지 → 세로 사진일 때 좌우 레터박스가 새까맣게 들어와
 *             흰 패널과 강하게 부딪히고, 닫기 버튼은 패널 바깥(left:100%)에 붙은 흰 사각형이었다.
 *  개선 방향(밝은 톤 유지): 스테이지 배경을 검정 → 아주 옅은 회색으로 바꿔 패널과 이어지게 하고,
 *             닫기/화살표/카운터는 흰 원형·필 컨트롤로 스테이지 위에 올린다. */
body.catx-on #modal-photo .modal_wrap_ver1{ background:#ffffff !important; border:1px solid var(--cx-line) !important; border-radius:14px !important; box-shadow:0 16px 40px rgba(30,45,70,.18) !important; }
body.catx-on #modal-photo .modal_wrap_ver1 .modal_content{ padding:14px !important; }
/* 레터박스를 밝은 회색으로 — 사진 경계가 부드럽게 이어진다 */
body.catx-on #modal-photo .modal_wrap_ver1 .modal_photo_slide{ background:#eef2f7 !important; border:1px solid var(--cx-line-soft) !important; border-radius:10px !important; }

/* 이전/다음: 스테이지 안쪽 흰 원형 버튼 */
body.catx-on #modal-photo .modal_wrap_ver1 .modal_photo_slide .slick-prev,
body.catx-on #modal-photo .modal_wrap_ver1 .modal_photo_slide .slick-next{ width:38px !important; height:38px !important; border-radius:50% !important; background:rgba(255,255,255,.92) !important; border:1px solid rgba(30,45,70,.14) !important; box-shadow:0 2px 8px rgba(30,45,70,.16) !important; z-index:4 !important; transition:background .12s ease, box-shadow .12s ease !important; }
body.catx-on #modal-photo .modal_wrap_ver1 .modal_photo_slide .slick-prev{ left:12px !important; }
body.catx-on #modal-photo .modal_wrap_ver1 .modal_photo_slide .slick-next{ right:12px !important; }
body.catx-on #modal-photo .modal_wrap_ver1 .modal_photo_slide .slick-prev:hover,
body.catx-on #modal-photo .modal_wrap_ver1 .modal_photo_slide .slick-next:hover{ background:#ffffff !important; box-shadow:0 3px 12px rgba(30,45,70,.24) !important; }
body.catx-on #modal-photo .modal_wrap_ver1 .modal_photo_slide .slick-prev:before,
body.catx-on #modal-photo .modal_wrap_ver1 .modal_photo_slide .slick-next:before{ color:#31435b !important; opacity:1 !important; }

/* 매수 카운터(1/2): 흰 필 + 옅은 테두리 */
body.catx-on #modal-photo .modal_wrap_ver1 .modal_photo_slide .slick-dots li{ background:rgba(255,255,255,.92) !important; color:#31435b !important; border:1px solid rgba(30,45,70,.14) !important; box-shadow:0 2px 6px rgba(30,45,70,.12) !important; padding:4px 12px !important; font-size:var(--dash-font-12, 12px) !important; font-weight:600 !important; }

/* 썸네일: 라운드 + 현재 항목 accent 테두리 */
body.catx-on #modal-photo .modal_wrap_ver1 .modal_photo_slide-nav{ margin-top:12px !important; }
body.catx-on #modal-photo .modal_wrap_ver1 .modal_photo_slide-nav .img_bgs{ border-radius:8px !important; border:1px solid var(--cx-line) !important; transition:border-color .12s ease !important; }
body.catx-on #modal-photo .modal_wrap_ver1 .modal_photo_slide-nav .img_boxs{ transition:opacity .12s ease !important; }
body.catx-on #modal-photo .modal_wrap_ver1 .modal_photo_slide-nav .img_boxs:not(.slick-current){ opacity:.5 !important; }
body.catx-on #modal-photo .modal_wrap_ver1 .modal_photo_slide-nav .img_boxs:not(.slick-current):hover{ opacity:.8 !important; }
body.catx-on #modal-photo .modal_wrap_ver1 .modal_photo_slide-nav .img_boxs.slick-current .img_bgs{ border-color:var(--cx-accent) !important; box-shadow:0 0 0 2px color-mix(in oklab, var(--cx-accent) 28%, transparent) !important; }

@media (min-width:993px){
	/* 닫기: 패널 바깥 흰 사각형 → 스테이지 우측 상단 흰 원형(앱도 이 폭에서만 바깥 배치를 쓴다) */
	body.catx-on #modal-photo .modal_wrap_ver1 .modal_title .close{ left:auto !important; right:12px !important; top:12px !important; width:34px !important; height:34px !important; border-radius:50% !important; background:rgba(255,255,255,.92) !important; border:1px solid rgba(30,45,70,.14) !important; box-shadow:0 2px 8px rgba(30,45,70,.16) !important; color:#31435b !important; opacity:1 !important; z-index:6 !important; transition:background .12s ease, box-shadow .12s ease !important; }
	body.catx-on #modal-photo .modal_wrap_ver1 .modal_title .close:hover{ background:#ffffff !important; box-shadow:0 3px 12px rgba(30,45,70,.24) !important; }
	body.catx-on #modal-photo .modal_wrap_ver1 .modal_title .close i{ font-size:18px !important; color:#31435b !important; }
	body.catx-on #modal-photo .modal_wrap_ver1{ border-radius:14px !important; }
}

@media (max-width:992px){
	/* (15-m) 사진 뷰어 모바일: 제목 바 + 썸네일 구조가 PC 와 달라 따로 정돈한다(밝은 톤 유지).
	 *  제목 바를 조금 낮추고 닫기를 원형으로, 스테이지 여백을 줄여 사진 영역을 넓히고,
	 *  얇게 눌려 보이던 썸네일에 고정 높이·라운드·선택 테두리를 준다. */
	body.catx-on #modal-photo .modal_wrap_ver1{ border-radius:14px !important; overflow:hidden !important; }
	body.catx-on #modal-photo .modal_wrap_ver1 .modal_title{ height:46px !important; line-height:46px !important; border-bottom:1px solid var(--cx-line-soft) !important; background:#fff !important; }
	body.catx-on #modal-photo .modal_wrap_ver1 .modal_title h4{ font-size:15px !important; font-weight:700 !important; color:var(--cx-strong) !important; }
	body.catx-on #modal-photo .modal_wrap_ver1 .modal_title .close{ position:absolute !important; top:50% !important; right:10px !important; left:auto !important; transform:translateY(-50%) !important; width:30px !important; height:30px !important; border-radius:50% !important; background:var(--cx-row) !important; border:1px solid var(--cx-line-soft) !important; color:var(--cx-body) !important; opacity:1 !important; display:flex !important; align-items:center !important; justify-content:center !important; }
	body.catx-on #modal-photo .modal_wrap_ver1 .modal_title .close i{ font-size:16px !important; color:var(--cx-body) !important; }
	/* 사진 영역 넓히기 */
	body.catx-on #modal-photo .modal_wrap_ver1 .modal_content{ padding:10px !important; }
	body.catx-on #modal-photo .modal_wrap_ver1 .modal_photo_slide{ border-radius:9px !important; }
	/* 좁은 폭에 맞춰 컨트롤 축소 */
	body.catx-on #modal-photo .modal_wrap_ver1 .modal_photo_slide .slick-prev,
	body.catx-on #modal-photo .modal_wrap_ver1 .modal_photo_slide .slick-next{ width:32px !important; height:32px !important; }
	body.catx-on #modal-photo .modal_wrap_ver1 .modal_photo_slide .slick-prev{ left:8px !important; }
	body.catx-on #modal-photo .modal_wrap_ver1 .modal_photo_slide .slick-next{ right:8px !important; }
	body.catx-on #modal-photo .modal_wrap_ver1 .modal_photo_slide .slick-dots{ bottom:10px !important; right:10px !important; }
	body.catx-on #modal-photo .modal_wrap_ver1 .modal_photo_slide .slick-dots li{ padding:3px 10px !important; font-size:var(--dash-font-11, 11px) !important; }
	/* 썸네일: 폭에 따라 납작해지던 것 → 고정 높이 + 라운드 + 선택 테두리 */
	body.catx-on #modal-photo .modal_wrap_ver1 .modal_photo_slide-nav{ margin-top:9px !important; }
	body.catx-on #modal-photo .modal_wrap_ver1 .modal_photo_slide-nav .img_bgs{ padding-top:0 !important; height:44px !important; border-radius:6px !important; }
	body.catx-on #modal-photo .modal_wrap_ver1 .modal_photo_slide-nav .img_boxs:not(:last-child){ margin-right:6px !important; }
	body.catx-on #modal-photo .modal_wrap_ver1 .modal_photo_slide-nav .img_boxs.slick-current .img_bgs{ box-shadow:0 0 0 2px color-mix(in oklab, var(--cx-accent) 32%, transparent) !important; }
}

/* (16) 사진 뷰어 원형 버튼의 아이콘 정렬 — slick 화살표는 ::before 글자를 line-height 로 맞추는 구조라
 *  원형 버튼으로 바꾸면 상하/좌우로 미세하게 치우친다 → flex 정렬로 확실히 가운데 둔다. */
body.catx-on #modal-photo .modal_wrap_ver1 .modal_photo_slide .slick-prev,
body.catx-on #modal-photo .modal_wrap_ver1 .modal_photo_slide .slick-next{ display:flex !important; align-items:center !important; justify-content:center !important; padding:0 !important; line-height:1 !important; text-align:center !important; }
body.catx-on #modal-photo .modal_wrap_ver1 .modal_photo_slide .slick-prev:before,
body.catx-on #modal-photo .modal_wrap_ver1 .modal_photo_slide .slick-next:before{ display:block !important; line-height:1 !important; width:auto !important; height:auto !important; }
body.catx-on #modal-photo .modal_wrap_ver1 .modal_title .close{ display:flex !important; align-items:center !important; justify-content:center !important; padding:0 !important; line-height:1 !important; }
body.catx-on #modal-photo .modal_wrap_ver1 .modal_title .close i{ line-height:1 !important; }

@media (max-width:992px){
	/* 썸네일 개수를 줄인 만큼(헤더 JS) 높이도 키워 알아보기 쉽게 */
	body.catx-on #modal-photo .modal_wrap_ver1 .modal_photo_slide-nav .img_bgs{ height:52px !important; }
}

/* (17) 사진 뷰어: 테두리가 겹쳐 두 줄로 보이던 문제 — 패널(.modal_wrap_ver1)에 이미 테두리를 줬는데
 *  바깥 .modal-dialog 쪽에도 테두리/그림자가 남아 윤곽선이 두 번 그려졌다 → 바깥은 비운다. */
body.catx-on #modal-photo .modal-dialog{ border:0 !important; box-shadow:none !important; background:transparent !important; }
body.catx-on #modal-photo .modal-dialog > .modal-content{ border:0 !important; box-shadow:none !important; background:transparent !important; }

@media (max-width:992px){
	/* (18) 사진 슬라이드와 썸네일이 거의 붙어 보여 간격을 조금 넓힌다.
	 *  슬라이드가 float 라 margin 이 먹지 않는 경우가 있어 clear 도 같이 준다. */
	body.catx-on #modal-photo .modal_wrap_ver1 .modal_photo_slide-nav{ clear:both !important; margin-top:14px !important; }
}

@media (max-width:992px){
	/* (18-b) 슬라이드-썸네일 간격 재조정.
	 *  앞서 넣은 clear:both 는 .modal_photo_slide-nav 가 inline-block 이라 무시된다(clear 는 블록 레벨에만 적용).
	 *  간격은 '떠 있는(float) 슬라이드'의 margin-bottom 으로 주는 게 확실하다 — 후속 콘텐츠를 실제로 밀어낸다.
	 *  여기에 썸네일 쪽 margin-top 을 더해 눈에 띄게 띄운다. */
	body.catx-on #modal-photo .modal_wrap_ver1 .modal_photo_slide{ margin-bottom:10px !important; }
	body.catx-on #modal-photo .modal_wrap_ver1 .modal_photo_slide-nav{ margin-top:10px !important; }
}

/* ═══ (19) 업데이트 건의 모달(#modal-update_send) — catx 모달 규격에 맞춰 통일 ═══
 *  기준: #modal-isfinish_change (라운드 16 / 헤더 18·24 / 본문 22·24 / 푸터 #fafafa + accent 버튼).
 *  구조·스크립트는 건드리지 않고 스타일만 덮는다. */
/* 레이아웃 정규화(구 블록에서 이관): 이 모달은 베이스 CSS 가 float/고정폭으로 짜여 있어 먼저 풀어준다.
 * ※ 중앙정렬은 베이스 규칙 `.modal.in:not(#modal-item) .modal-dialog{position:fixed; left/top; transform}`
 *   가 담당하므로 위치/transform 은 건드리지 않는다(건드리면 특이도 싸움으로 깨짐). */
body.catx-on #modal-update_send{ text-align:initial !important; }
body.catx-on #modal-update_send .modal-dialog{ max-height:calc(100vh - 32px) !important; padding:0 !important; float:none !important; }
body.catx-on #modal-update_send .modal-dialog>*{ float:none !important; }
body.catx-on #modal-update_send .modal-content{ position:static !important; width:100% !important; height:auto !important; }
body.catx-on #modal-update_send .modal-content>*{ float:none !important; display:block !important; }
body.catx-on #modal-update_send .modal_content_title .modal_form_1box,
body.catx-on #modal-update_send .modal_content_title .modal_form_2box{ width:auto !important; float:none !important; margin:0 !important; }
body.catx-on #modal-update_send .modal_box_body,
body.catx-on #modal-update_send .modal-body-left,
body.catx-on #modal-update_send .modal_box_right{ width:100% !important; height:auto !important; float:none !important; overflow:visible !important; }
body.catx-on #modal-update_send .modal_form_1box,
body.catx-on #modal-update_send .modal_form_content{ width:100% !important; float:none !important; padding:0 !important; margin:0 !important; }
body.catx-on #modal-update_send .modal-footer{ width:100% !important; height:auto !important; }
body.catx-on #modal-update_send .modal-dialog{ width:min(520px, calc(100% - 32px)) !important; height:auto !important; }
body.catx-on #modal-update_send .black_box{ display:none !important; }
body.catx-on #modal-update_send .modal-content.modal-body{ padding:0 !important; background:#fff !important; border:1px solid var(--cx-line) !important; border-radius:16px !important; box-shadow:0 16px 40px rgba(30,45,70,.18) !important; overflow:hidden !important; }

/* 헤더: 아이콘+제목 좌측, 닫기 원형 우측 */
body.catx-on #modal-update_send .modal_content_title{ display:flex !important; align-items:center !important; justify-content:space-between !important; gap:12px !important; margin:0 !important; padding:18px 24px !important; border-bottom:1px solid #ececef !important; position:static !important; }
body.catx-on #modal-update_send .modal_content_title .modal_form_1box{ margin:0 !important; flex:1 1 auto !important; min-width:0 !important; }
body.catx-on #modal-update_send .modal-title{ display:flex !important; align-items:center !important; gap:8px !important; float:none !important; margin:0 !important; font-size:18px !important; font-weight:700 !important; color:#18181b !important; }
body.catx-on #modal-update_send .modal-title i{ margin:0 !important; font-size:16px !important; color:var(--cx-accent) !important; }
body.catx-on #modal-update_send .modal-title span{ font-size:18px !important; font-weight:700 !important; color:#18181b !important; }
body.catx-on #modal-update_send .modal_content_title .close{ position:static !important; flex:0 0 auto !important; width:32px !important; height:32px !important; padding:0 !important; border-radius:50% !important; background:var(--cx-row) !important; border:1px solid var(--cx-line-soft) !important; color:var(--cx-body) !important; opacity:1 !important; display:flex !important; align-items:center !important; justify-content:center !important; transition:background .12s ease, border-color .12s ease !important; }
body.catx-on #modal-update_send .modal_content_title .close:hover{ background:var(--cx-hover-bg) !important; border-color:var(--cx-hover-line) !important; }
body.catx-on #modal-update_send .modal_content_title .close i{ font-size:15px !important; line-height:1 !important; }

/* 본문: 라벨 + 입력 */
body.catx-on #modal-update_send .modal_box_body .modal-body{ padding:22px 24px !important; }
body.catx-on #modal-update_send .modal_box_body .form-group{ margin:0 !important; }
body.catx-on #modal-update_send .modal_form_title{ display:block !important; margin:0 0 8px !important; font-size:13px !important; font-weight:600 !important; color:#3f3f46 !important; }
body.catx-on #modal-update_send #form_suggest{ width:100% !important; box-sizing:border-box !important; min-height:170px !important; padding:12px 14px !important; background:#fff !important; border:1px solid var(--cx-line) !important; border-radius:10px !important; box-shadow:none !important; font-size:13.5px !important; line-height:1.65 !important; color:var(--cx-text) !important; resize:vertical !important; transition:border-color .12s ease, box-shadow .12s ease !important; }
body.catx-on #modal-update_send #form_suggest:focus{ outline:0 !important; border-color:var(--cx-accent) !important; box-shadow:0 0 0 3px color-mix(in oklab, var(--cx-accent) 16%, transparent) !important; }
body.catx-on #modal-update_send #form_suggest::placeholder{ color:var(--cx-sub) !important; }

/* 푸터: 우측 정렬 accent 버튼 */
body.catx-on #modal-update_send .modal-footer{ margin:0 !important; padding:14px 24px !important; background:transparent !important; border-top:1px solid #ececef !important; text-align:center !important; }
body.catx-on #modal-update_send .modal-footer .btn-primary{ min-width:104px !important; height:38px !important; padding:0 18px !important; background:var(--cx-accent) !important; border:0 !important; border-radius:10px !important; color:#fff !important; font-size:13.5px !important; font-weight:700 !important; box-shadow:0 1px 2px rgba(77,141,255,.35) !important; transition:filter .12s ease !important; }
body.catx-on #modal-update_send .modal-footer .btn-primary:hover{ filter:brightness(1.06) !important; }

@media (max-width:700px){
	body.catx-on #modal-update_send .modal_content_title{ padding:15px 16px !important; }
	body.catx-on #modal-update_send .modal_box_body .modal-body{ padding:16px !important; }
	body.catx-on #modal-update_send .modal-footer{ padding:12px 16px !important; }
	body.catx-on #modal-update_send .modal-title,
	body.catx-on #modal-update_send .modal-title span{ font-size:16px !important; }
	body.catx-on #modal-update_send #form_suggest{ min-height:140px !important; }
}

/* (19-b) 업데이트 건의 모달: 윤곽선이 두 줄로 보이던 문제.
 *  이 모달은 catx 전용 블록이 이미 있었고(1587~) 거기에 (19) 를 덧씌우면서 패널 바깥/안쪽에도 선이 남았다.
 *  테두리·그림자는 패널(.modal-content) 하나만 갖도록 나머지를 비운다. */
body.catx-on #modal-update_send .modal-dialog,
body.catx-on #modal-update_send .modal_box_body,
body.catx-on #modal-update_send .modal_box_body > .modal-body,
body.catx-on #modal-update_send .modal-content > .form-horizontal{ border:0 !important; box-shadow:none !important; background:transparent !important; }
@media (max-width:560px){ body.catx-on #modal-update_send .modal-dialog{ width:calc(100vw - 24px) !important; } }

@media (max-width:992px){
	/* (20) 모바일 일반 페이지 상단에 빈 띠가 생기던 문제(임장 관리 등 다수).
	 *  이 파일 2043 의 `body.catx-on .admin_main_wrap{ padding-top:12px }` 는 원래 매물목록 상단 여백용인데
	 *  선택자가 넓어 모든 catx 페이지에 걸렸고, 각 페이지의 section.padder-v(상단 16px)와 겹쳐 28px 가 됐다.
	 *  → 매물목록(자체 여백 규칙 보유)만 남기고 catx 가 더한 12px 를 걷어낸다. 페이지 고유 여백은 유지. */
	body.catx-on #admin_wrap .admin_main_wrap:not(:has(.admin_itemList)){ padding-top:0 !important; }
}

@media(min-width:1280px){
	/* (21) 매물연동용(42): 네이버 발송 매물이 많으면 2행이 내용 높이만큼 늘어나
	 *  페이지 전체에 스크롤이 생기고 3행과 세로 균형이 깨지던 문제.
	 *  원인 ① 래퍼(.catxd-wrap.catxi-sync)가 min-height 만 갖고 있어 상한이 없었다.
	 *       ② 행(.catxd-row3)은 flex:1 1 auto 인데 min-height 기본값이 auto 라 내용보다 작아질 수 없었다.
	 *  → 래퍼 높이를 뷰포트로 고정하고 행에 min-height:0 을 줘서 남는 높이를 2·3행이 균등 분배하게 하고,
	 *    넘치는 목록은 이미 있는 .catxi-list{overflow-y:auto} 규칙으로 패널 안에서 스크롤되게 한다. */
	 *  ※ 적용 폭을 1280px 이상으로 제한한다 — 1279px 이하에서는 .catxd-row3 가 2열로 바뀌고
	 *    첫 패널이 전체폭(grid-column:1/-1)을 차지해 한 행이 실제로는 두 줄을 쓴다.
	 *    그 상태에서 높이를 뷰포트로 묶으면 패널이 과도하게 눌려 내용이 거의 안 보인다.
	body.catx-on .catxd-wrap.catxi-sync{ height:calc(100dvh - var(--cx-topbar-h)) !important; max-height:calc(100dvh - var(--cx-topbar-h)) !important; overflow:hidden !important; }
	body.catx-on .catxd-wrap.catxi-sync.catxi-dash > .catxd-row3,
	body.catx-on .catxd-wrap.catxi-sync.catxi-dash > .catxd-row3.catxi-summary-row{ flex:1 1 0 !important; min-height:0 !important; }  /* basis:auto 면 내용 많은 2행이 공간을 독식 → 0 으로 균등 분배 */
	body.catx-on .catxd-wrap.catxi-sync.catxi-dash > .catxd-row3 > .catxd-panel{ min-height:0 !important; overflow:hidden !important; }
}

@media (min-width:993px) and (max-width:1279px){
	/* (21-b) 993~1279px 구간: 이 폭에서는 .catxd-row3 가 2열 + 첫 패널 전체폭이라 위 (21) 의 뷰포트 상한을
	 *  적용하지 않는다. 대신 전체폭을 차지하는 '네이버 발송 매물 목록' 패널만 최대 높이를 걸어
	 *  건수가 많아도 과도하게 길어지지 않게 하고, 넘치는 부분은 목록 안에서 스크롤한다.
	 *  (7일 추이·최근작업·매물/고객/방문 현황은 내용 높이 그대로 둔다.) */
	body.catx-on .catxd-wrap.catxi-sync.catxi-dash > .catxd-row3:not(.catxi-summary-row) > .catxd-panel:first-child{
		max-height:clamp(300px, 46vh, 460px) !important; display:flex !important; flex-direction:column !important; min-height:0 !important; overflow:hidden !important; }
	body.catx-on .catxd-wrap.catxi-sync.catxi-dash > .catxd-row3:not(.catxi-summary-row) > .catxd-panel:first-child .catxi-list{
		flex:1 !important; min-height:0 !important; overflow-y:auto !important; }
}

@media (max-width:992px){
	/* (21-c) 모바일/태블릿: 네이버 발송 매물 목록도 건수가 많으면 한없이 길어져 아래 패널까지 스크롤이 멀어진다.
	 *  데스크톱(993~1279px)과 동일하게 이 패널만 최대 높이를 걸고 목록 안에서 스크롤하게 한다. */
	body.catx-on .catxd-wrap.catxi-sync > .catxd-row3:not(.catxi-summary-row) > .catxd-panel:first-child{
		max-height:clamp(280px, 52vh, 440px) !important; display:flex !important; flex-direction:column !important; min-height:0 !important; overflow:hidden !important; }
	body.catx-on .catxd-wrap.catxi-sync > .catxd-row3:not(.catxi-summary-row) > .catxd-panel:first-child .catxi-list{
		flex:1 !important; min-height:0 !important; overflow-y:auto !important; -webkit-overflow-scrolling:touch !important; overscroll-behavior-y:contain !important; }
}

/* ═══════════════════════════════════════════════════════════════════════════
 * [매물등록폼 스타일 개선 — 1차] catx 전용. 레이아웃/마크업/스크립트 불변, CSS 만.
 *  공유 폼 CSS(admin_item_form_v2_css.php, 5,869줄 / !important 545개)는 건드리지 않고
 *  `body.catx-on` 을 앞에 붙여 특이도로 이긴다(대부분 !important 불필요 — 원본이 !important 인 곳만 사용).
 *  포인트 컬러는 catx 기본 토큰 --cx-accent(#4d8dff)와 동일하므로 토큰 재정의 없이 리터럴로 맞춘다.
 *  ※ 대시보드(.catxd-wrap)는 --cx-accent 를 #3b82f6 로 따로 덮으므로 영향 없음.
 * ═══════════════════════════════════════════════════════════════════════════ */

/* ── 1. 전체 페이지 배경 — 흰 패널과 구분 ──
 *  배경은 #form_item 바깥(.admin_main_wrap)이라 '등록폼이 있는 화면'으로만 한정한다. */
/* 등록폼 화면 배경을 대시보드와 동일하게.
 * admin_header_category.php:1067 의 `body #admin_wrap .admin_main_wrap{background:#f3f6fb !important}`(min-width:993px)
 * 가 이기고 있었다. 대시보드는 같은 자리를 transparent !important 로 비워 #admin_wrap 의 catx 색을
 * 그대로 보여주는 구조이므로, 등록폼도 동일하게 비운다(색을 다시 칠하지 않아 토큰 변경에도 자동 일치). */
body.catx-on #admin_wrap .admin_main_wrap:has(.itemAdd_box_wrap){ background:transparent !important; }
body.catx-on #admin_wrap .admin_main_wrap:has(.itemAdd_box_wrap) > .section_box_wrap{ background:transparent; box-shadow:none; }

/* ── 2. 패널: 흰 배경 + 얇고 선명한 테두리 + 아주 은은한 그림자 ── */
/* 테두리·라운드를 '추가'하면 원래 선/모서리와 겹쳐 두 줄로 보이고,
 * .form_box_wrap 은 탭 컨테이너 안에 또 들어가는 중첩 구조라 이중으로 걸린다.
 * → 새로 그리지 않고 기존 테두리의 '색'만 바꾸고, 구분은 아주 은은한 그림자로만 준다. */
body.catx-on #form_item .box_content_box .form_box_wrap{
	background:#FFFFFF; border-color:#E2E7ED; border-radius:8px;
	box-shadow:0 1px 2px rgba(23,43,77,.05); }

/* ── 3. 패널 헤더: 연한 블루그레이 + 아래 구분선, 제목은 진한 네이비로 한 단계 강조 ──
 *  (헤더 높이·패딩은 원본 유지 — 정보 밀도 보존) */
body.catx-on #form_item .box_content_box .form_box_wrap > .form_title{
	background:#FAFBFC; border-bottom-color:#E2E7ED; border-radius:8px 8px 0 0; }
body.catx-on #form_item .box_content_box .form_box_wrap > .form_title .title{
	color:#172B4D; font-weight:700; }

/* 등록폼 카드 헤더의 보조 설정 버튼은 제목보다 한 단계 작게 표시한다. */
body.catx-on.cx-has-itemadd #form_item .box_content_box .form_box_wrap#form_location_info .form_title .title_btn_wrap > :is(.btn_item_import,.location_setting_btn),
body.catx-on.cx-has-itemadd #form_item .box_content_box .form_box_wrap#form_price_info .form_title .setting_btn.price_setting_btn,
body.catx-on.cx-has-itemadd #form_item .box_content_box .form_box_wrap#form_officer_info .form_title .setting_btn.customer_setting_btn{
	font-size:var(--dash-font-12, 12px);
}
@media (max-width:992px){
	body.catx-on.cx-has-itemadd #form_item .box_content_box .form_box_wrap#form_location_info .form_title .title_btn_wrap > :is(.btn_item_import,.location_setting_btn),
	body.catx-on.cx-has-itemadd #form_item .box_content_box .form_box_wrap#form_price_info .form_title .setting_btn.price_setting_btn,
	body.catx-on.cx-has-itemadd #form_item .box_content_box .form_box_wrap#form_officer_info .form_title .setting_btn.customer_setting_btn{
		font-size:var(--dash-font-12, 12px);
	}
}

/* ── 4. 입력창: 배경에 묻히지 않게 테두리 대비 강화 + 포커스 링 ── */
body.catx-on #form_item .form-control,
body.catx-on #form_item select.form-control,
body.catx-on #form_item textarea.form-control{
	background:#FFFFFF; border-color:#C7D0DB; color:#1F2937; }
body.catx-on #form_item .form-control::placeholder{ color:#94A3B8; }
body.catx-on #form_item .form-control:focus,
body.catx-on #form_item select.form-control:focus,
body.catx-on #form_item textarea.form-control:focus{
	border-color:#4D8DFF; box-shadow:0 0 0 3px rgba(77,141,255,.18); outline:0; }
body.catx-on #form_item .form-control:disabled,
body.catx-on #form_item .form-control[readonly]{ background:#F1F3F5; color:#64748B; }

/* ── 5. 라벨/보조문구 위계 (크기는 그대로, 색·굵기만) ── */
body.catx-on #form_item .box_content_box .form_box_wrap .form_table_box_tt{ color:#1F2937; }
body.catx-on #form_item .box_content_box .form_box_wrap .form_table_box_tt > span:first-child{ font-weight:600; }

/* 데스크톱 카드 행 사이에 위·아래 테두리가 함께 보여 두 줄처럼 보이므로,
 * 앞 행의 하단선만 감춘다. 다음 행의 상단선은 유지한다. */
@media (min-width:993px){
	body.catx-on.cx-has-itemadd #form_item .box_content_box_1 > .form_box_wrap > .form_table{
		border-bottom-color:transparent;
	}
	body.catx-on.cx-has-itemadd #form_item .box_content_box_1 > .form_box_wrap{
		box-shadow:0 -1px 2px rgba(23,43,77,.04);
	}
	body.catx-on.cx-has-itemadd #form_item .box_content_box_2 > #form_officer_info > .form_table,
	body.catx-on.cx-has-itemadd #form_item .box_content_box_2 > .form_detail_photo_tab > .detail_photo_tab_content > .form_box_wrap > .form_table,
	body.catx-on.cx-has-itemadd #form_item .box_content_box_2 > .form_building_toji_tab > .building_toji_tab_content > .form_box_wrap > .form_table{
		border-bottom-color:transparent;
	}
	body.catx-on.cx-has-itemadd #form_item .box_content_box_2 > .form_box_wrap,
	body.catx-on.cx-has-itemadd #form_item .box_content_box_2 > .form_box_wrap > :is(.detail_photo_tab_content,.building_toji_tab_content) > .form_box_wrap{
		box-shadow:0 -1px 2px rgba(23,43,77,.04);
	}
}

/* ── 6. 포인트 컬러 통일: 이 폼의 파랑(#0A84FF)을 #4D8DFF 로 ──
 *  선택된 버튼 = 채운 파랑 / 비선택 = 흰 배경 + 파랑 테두리·글자 */
body.catx-on #form_item .box_content_box .form_box_wrap .buttons_boxs label.active span{
	background:#4D8DFF; border-color:#4D8DFF; color:#FFFFFF; }
body.catx-on #form_item .box_content_box .form_box_wrap .buttons_boxs label:not(.active) span{
	background:#FFFFFF; border-color:#4D8DFF; color:#4D8DFF; }
body.catx-on #form_item .box_content_box .form_box_wrap .buttons_boxs label:not(.active):hover span{
	background:rgba(77,141,255,.08); border-color:#3B7BEE; color:#3B7BEE; }
body.catx-on #form_item .box_content_box .form_box_wrap .buttons_boxs label.active:hover span{
	background:#3B7BEE; border-color:#3B7BEE; }
body.catx-on #form_item .box_content_box .form_box_wrap .buttons_boxs label.disabled span,
body.catx-on #form_item .box_content_box .form_box_wrap .buttons_boxs label[disabled] span{
	background:#F1F3F5; border-color:#D5DCE5; color:#94A3B8; }

/* 상세정보 / 사진 및 동영상 등록 탭 */
body.catx-on #form_item .box_content_box .form_box_wrap.form_detail_photo_tab .detail_photo_tab_btn_box > div.on{
	background:#4D8DFF; border-color:#4D8DFF; color:#FFFFFF; }

/* 체크박스·라디오 활성 색 */
body.catx-on #form_item .checks input[type="checkbox"]:checked + label:before,
body.catx-on #form_item .checks input[type="radio"]:checked + label:before{
	background:#4D8DFF; border-color:#4D8DFF; }
body.catx-on #form_item .checks input[type="checkbox"]:focus + label:before,
body.catx-on #form_item .checks input[type="radio"]:focus + label:before{
	box-shadow:0 0 0 3px rgba(77,141,255,.18); }

/* ── 7. 지도·에디터: 내부는 손대지 않고 컨테이너 경계만 ── */
body.catx-on #form_item .map_wrap,
body.catx-on #form_item .se-container,
body.catx-on #form_item .note-editor{ border-color:#D5DCE5; }  /* 지도·에디터도 테두리 신규 추가 대신 색만 */

/* ── 8. 상단 툴바(매물종류 선택 + 저장 후 복사)도 포인트 컬러 통일 ──
 *  매물종류: 선택 = 채운 #4D8DFF / 비선택 = 흰 배경 + #4D8DFF 테두리·글자
 *  저장 후 복사: 원본이 #0557fe 를 !important 로 박아둬서 여기만 !important 를 맞춰 쓴다. */
body.catx-on #form_item .form_select_box .form_select_box_L .form_select > div{
	color:#4D8DFF; border-color:#4D8DFF; }
body.catx-on #form_item .form_select_box .form_select_box_L .form_select > div:hover{
	background:rgba(77,141,255,.08); border-color:#3B7BEE; color:#3B7BEE; }
body.catx-on #form_item .form_select_box .form_select_box_L .form_select > div.on{
	background:#4D8DFF; border-color:#4D8DFF; color:#FFFFFF; }
body.catx-on #form_item .form_select_box .form_select_box_L .form_select > div.on:hover{
	background:#3B7BEE; border-color:#3B7BEE; color:#FFFFFF; }
body.catx-on #form_item .form_select_box .form_select_box_R > .save_btn_copy{
	background:#4D8DFF !important; border-color:#4D8DFF !important; color:#FFFFFF !important; }
body.catx-on #form_item .form_select_box .form_select_box_R > .save_btn_copy:hover{
	background:#3B7BEE !important; border-color:#3B7BEE !important; color:#FFFFFF !important; }
body.catx-on #form_item .form_btn_box .btn.save_btn_copy{ background:#4D8DFF; border-color:#4D8DFF; }
body.catx-on #form_item .form_btn_box .btn.save_btn_copy:hover{ background:#3B7BEE; border-color:#3B7BEE; color:#FFFFFF; }

/* 탭 컨테이너(.form_detail_photo_tab)는 패널이 아니라 '탭 두 개를 담는 틀'이라 배경이 있으면
 * 탭 사이 간격(10px)에 흰 띠가 보인다 → 배경/그림자/테두리 없이 투명 유지. */
body.catx-on #form_item .box_content_box .form_box_wrap.form_detail_photo_tab{
	background:transparent; box-shadow:none; border-color:transparent; }
/* 라운드 통일 8px — 패널 안쪽 본문/탭 버튼 모서리도 맞춰 이중선처럼 보이지 않게 */
body.catx-on #form_item .box_content_box .form_box_wrap.form_detail_photo_tab .detail_photo_tab_btn_box > div{
	border-radius:8px 8px 0 0; }
body.catx-on #form_item .box_content_box .form_box_wrap .form_box_content{ border-radius:0 0 8px 8px; }

/* ── 10. 입력 요소 포커스 효과 ──
 *  네이티브 select 는 .form-control 이 없는 것도 있어 요소 선택자로 함께 잡는다.
 *  클릭(포커스) 시 테두리·글자를 포인트 컬러로, 주변에 옅은 포커스 링. */
body.catx-on #form_item select:focus,
body.catx-on #form_item input:focus,
body.catx-on #form_item textarea:focus{
	border-color:#4D8DFF; box-shadow:0 0 0 3px rgba(77,141,255,.18); outline:0; }
body.catx-on #form_item select:focus{ color:#4D8DFF; }

/* bootstrap-select(.selectpicker)는 실제 <select> 를 숨기고 .btn.dropdown-toggle 을 렌더한다.
 * 그래서 select:focus 로는 클릭 효과가 걸리지 않는다 → 버튼(열림/포커스) 기준으로 동일한 효과를 준다. */
body.catx-on #form_item .bootstrap-select.btn-group > .dropdown-toggle:focus,
body.catx-on #form_item .bootstrap-select.btn-group.open > .dropdown-toggle,
body.catx-on #form_item .btn-group.open > .dropdown-toggle.btn-default,
body.catx-on #form_item .select_boxs .btn-group.open > .dropdown-toggle{
	border-color:#4D8DFF; color:#4D8DFF;
	box-shadow:0 0 0 3px rgba(77,141,255,.18); outline:0; }
/* 열린 목록의 선택 항목도 포인트 컬러로 */
body.catx-on #form_item .bootstrap-select.btn-group .dropdown-menu li.selected > a,
body.catx-on #form_item .bootstrap-select.btn-group .dropdown-menu li > a:hover{
	background:rgba(77,141,255,.08); color:#4D8DFF; }

/* -- 9. [자동 생성] 폼에 하드코딩된 파랑(#0A84FF / #0557fe)을 포인트 컬러 #4D8DFF 로 일괄 통일 --
 *  원본 규칙과 1:1 대응. 선택자 앞에 body.catx-on.cx-has-itemadd 만 붙여
 *  (a) 특이도로 이기고 (b) 등록폼이 있는 화면으로만 범위를 묶는다.
 *  - 같은 규칙의 color:#FFF 동반 이관: 안 하면 선택 상태(.active/.on)의 흰 글자를 덮어버린다.
 *  - 원본이 무효인 선언(##0A84FF 등) 제외: 되살리면 없던 스타일이 새로 생긴다.
 *  - 원본의 @media 조건 유지: 빼면 좁은 폭 전용 색이 전 폭에 적용된다.
 *  색상 외 속성은 손대지 않으므로 크기/위치/상태 로직에 영향 없음. */
body.catx-on.cx-has-itemadd .modal_wrap_ver1 .btn.btn_0557fe{ background:#4D8DFF; border-color:#4D8DFF; color:#fff; }
body.catx-on.cx-has-itemadd .modal_wrap_ver1 .btn.btn_0557fe:hover{ background:#fff; color:#4D8DFF; }
body.catx-on.cx-has-itemadd .form_box .box_title{ background:#4D8DFF; color: #fff; }
body.catx-on.cx-has-itemadd .form_box .box_contents .form_title .btn.add_build{ background:#4D8DFF; color:#fff; border-color:#4D8DFF; }
body.catx-on.cx-has-itemadd .form_box .box_contents .form_title .btn.add_build:hover{ background: #FFF; color:#4D8DFF; }
body.catx-on.cx-has-itemadd .form_box .box_contents .form_title .btn.add_build:hover i{ color:#4D8DFF; }
body.catx-on.cx-has-itemadd .form_select_box .form_select div{ background:#fff; border-color:#4D8DFF; color:#4D8DFF; }
body.catx-on.cx-has-itemadd .form_select_box .form_select div.on{ background:#4D8DFF; color:#fff; }
body.catx-on.cx-has-itemadd .multibox.file .image_edit_btn{ border-color:#4D8DFF; background:#4D8DFF; color: #FFF; }
body.catx-on.cx-has-itemadd .multibox.file .image_edit_btn:hover{ color:#4D8DFF; background: #FFF; }
body.catx-on.cx-has-itemadd .address_tr .con_box .build_searchs span{ background:#4D8DFF; border-color:#4D8DFF; color: #fff; }
body.catx-on.cx-has-itemadd .address_tr .con_box .build_searhs span:hover{ background: #fff; color:#4D8DFF; }
body.catx-on.cx-has-itemadd .map_wrap .btn_tojiSoyu_search{ background:#; border-color:#4D8DFF; color:#4D8DFF; }
body.catx-on.cx-has-itemadd .location_address_box_L .address_box .form_table_box_tt .btn_tojiSoyu_search{ background:#; border-color:#4D8DFF; color:#4D8DFF; }
body.catx-on.cx-has-itemadd .map_wrap .btn_tojiSoyu_search:hover{ background:#4D8DFF !important; border-color:#4D8DFF !important; color:#fff  !important; }
body.catx-on.cx-has-itemadd .location_address_box_L .address_box .form_table_box_tt .btn_tojiSoyu_search:hover{ background:#4D8DFF !important; border-color:#4D8DFF !important; color:#fff  !important; }
body.catx-on.cx-has-itemadd .contents_g_contents .btn:not(.active, body.catx-on.cx-has-itemadd .dropdown-toggle):hover{ background:#4D8DFF; border-color:#4D8DFF; color:#fff; }
body.catx-on.cx-has-itemadd .contents_g_contents .btn-default.active, body.catx-on.cx-has-itemadd .btn-default:active, body.catx-on.cx-has-itemadd .open>.dropdown-toggle.btn-default{ background:#4D8DFF; color:#fff; border-color:#4D8DFF; }
body.catx-on.cx-has-itemadd .contents_g_contents .btn-default.active:hover{ background:#4D8DFF; color:#fff; }
body.catx-on.cx-has-itemadd .contents_g_contents .input-group-addon.btn_toji_search{ background:#4D8DFF; border-color:#4D8DFF; color:#fff; }
body.catx-on.cx-has-itemadd .contents_g_contents .input-group-addon.btn_toji_search:hover{ background:#fff; color:#4D8DFF; }
body.catx-on.cx-has-itemadd .moneybox .contents_g_contents .input_month_rent_btn{ background:#4D8DFF; border-color:#4D8DFF; color:#fff; }
body.catx-on.cx-has-itemadd .contents_g_contents .form_owner_select>.btn{ background:#4D8DFF; color:#fff; border-color:#4D8DFF; }
body.catx-on.cx-has-itemadd .contents_g_contents .form_owner_select>.btn:hover{ background:#fff; color:#4D8DFF; }
body.catx-on.cx-has-itemadd .form_box_wrap .form_owner_select>.btn{ background:#4D8DFF; color:#fff; border-color:#4D8DFF; }
body.catx-on.cx-has-itemadd .form_box_wrap .form_owner_select>.btn:hover{ background:#fff; color:#4D8DFF; }
body.catx-on.cx-has-itemadd .form-control:focus{ border-color:#4D8DFF; }
body.catx-on.cx-has-itemadd label.btn-default{ border-color:#4D8DFF; color:#4D8DFF; }
body.catx-on.cx-has-itemadd select:focus, body.catx-on.cx-has-itemadd select:active{ border-color:#4D8DFF; }
body.catx-on.cx-has-itemadd .btn-default.active.focus, body.catx-on.cx-has-itemadd .btn-default.active:focus, body.catx-on.cx-has-itemadd .btn-default.active:hover, body.catx-on.cx-has-itemadd .btn-default:active:focus, body.catx-on.cx-has-itemadd .btn-default:active:hover, body.catx-on.cx-has-itemadd .open>.dropdown-toggle.btn-default:focus{ border-color:#4D8DFF; background-color:#fff; }
body.catx-on.cx-has-itemadd .form_content .btn-default:hover{ background:#fafafa; border-color:#4D8DFF; }
body.catx-on.cx-has-itemadd .form_content .form-control:focus{ border-color:#4D8DFF; }
body.catx-on.cx-has-itemadd .form_content .cke_combo_off a.cke_combo_button:hover, body.catx-on.cx-has-itemadd .form_content .cke_combo_off a.cke_combo_button:focus{ border-color:#4D8DFF; background:#efefef; }
body.catx-on.cx-has-itemadd .form_content .cke_toolgroup:hover{ border-color:#4D8DFF; }
body.catx-on.cx-has-itemadd .filebox label:hover{ border-color:#4D8DFF; color:#4D8DFF; }
body.catx-on.cx-has-itemadd .checks input[type="checkbox"]:checked + label:before{ background:#4D8DFF; border-color:#4D8DFF; color:#fff; }
body.catx-on.cx-has-itemadd .form_btn_box .save_btn_copy{ background-color:#4D8DFF !important; border-color:#4D8DFF !important; }
body.catx-on.cx-has-itemadd .form_btn_box .save_btn_copy:hover{ background:#fff  !important; border-color:#4D8DFF !important; color:#4D8DFF !important; }
body.catx-on.cx-has-itemadd .switch-input:checked ~ .switch-label{ background:#4D8DFF; }
body.catx-on.cx-has-itemadd .land_unit_btn{ background:#4D8DFF; border-color:#4D8DFF; color:#fff; }
body.catx-on.cx-has-itemadd .land_unit_btn:hover{ background:#fff; color:#4D8DFF; }
body.catx-on.cx-has-itemadd .form_box_wrap .form_title>.land_unit_btn{ background:#4D8DFF; border-color:#4D8DFF; color:#fff; }
body.catx-on.cx-has-itemadd .form_box_wrap .form_title>.land_unit_btn:hover{ background:#fff; color:#4D8DFF; }
body.catx-on.cx-has-itemadd .contents_g_contents .input-group>input:focus{ border-color:#4D8DFF; }
body.catx-on.cx-has-itemadd .btn_part.active .radioR{ background:#4D8DFF; border-color:#4D8DFF; }
body.catx-on.cx-has-itemadd .btn_display.active .radioR{ background:#4D8DFF; border-color:#0076e7; }
body.catx-on.cx-has-itemadd .fileName_box label>span{ background:#4D8DFF; border-color:#4D8DFF; color:#fff; }
body.catx-on.cx-has-itemadd .fileName_box label>span:hover{ background:#fff; color:#4D8DFF; }
body.catx-on.cx-has-itemadd .rental_status_table .btn{ background:#4D8DFF; border-color:#4D8DFF; color:#fff; }
body.catx-on.cx-has-itemadd .rental_status_table .btn:hover{ background:#fff; border-color:#4D8DFF; color:#4D8DFF; }
body.catx-on.cx-has-itemadd .price_auction_table .btn{ background:#4D8DFF; border-color:#4D8DFF; color:#fff; }
body.catx-on.cx-has-itemadd .price_auction_table .btn:hover{ background:#fff; border-color:#4D8DFF; color:#4D8DFF; }
body.catx-on.cx-has-itemadd .tenant_table .btn{ background:#4D8DFF; border-color:#4D8DFF; color:#fff; }
body.catx-on.cx-has-itemadd .tenant_table .btn:hover{ background:#fff; border-color:#4D8DFF; color:#4D8DFF; }
body.catx-on.cx-has-itemadd .building_register_table .btn{ background:#4D8DFF; border-color:#4D8DFF; color:#fff; }
body.catx-on.cx-has-itemadd .building_register_table .btn:hover{ background:#fff; border-color:#4D8DFF; color:#4D8DFF; }
body.catx-on.cx-has-itemadd .toji_register_table .btn{ background:#4D8DFF; border-color:#4D8DFF; color:#fff; }
body.catx-on.cx-has-itemadd .toji_register_table .btn:hover{ background:#fff; border-color:#4D8DFF; color:#4D8DFF; }
body.catx-on.cx-has-itemadd .tenant_lease_table .btn{ background:#4D8DFF; border-color:#4D8DFF; color:#fff; }
body.catx-on.cx-has-itemadd .tenant_lease_table .btn:hover{ background:#fff; border-color:#4D8DFF; color:#4D8DFF; }
body.catx-on.cx-has-itemadd .form_tabbtn .tab_btn{ color:#4D8DFF; background: #FFF; border-color:#4D8DFF; }
body.catx-on.cx-has-itemadd .form_tabbtn .tab_btn.active{ color: #FFF; background:#4D8DFF; }
body.catx-on.cx-has-itemadd .build_tabcontent .tabcontent_floor .box_title span.item_arrow:hover{ border-color:#4D8DFF; }
body.catx-on.cx-has-itemadd .build_tabcontent .tabcontent_floor .box_title span.item_arrow:hover i, body.catx-on.cx-has-itemadd .build_tabcontent .tabcontent_floor .box_title span.item_arrow.on i{ color:#4D8DFF; }
body.catx-on.cx-has-itemadd .build_searchbtn{ background:#4D8DFF; border-color:#4D8DFF; color: #fff; }
body.catx-on.cx-has-itemadd .build_searchbtn:hover{ background: #fff; color:#4D8DFF; }
body.catx-on.cx-has-itemadd .contents_g_contents .con_box.management3 .fee_list .fee_plus{ border-color:#4D8DFF; color: #FFF; background:#4D8DFF; }
body.catx-on.cx-has-itemadd .contents_g_contents .con_box.management3 .fee_list .fee_plus:hover{ color:#4D8DFF; background: #FFF; }
body.catx-on.cx-has-itemadd .price_to_won{ color:#4D8DFF; }
body.catx-on.cx-has-itemadd .checks input[type="checkbox"]:checked + label:before{ background:#4D8DFF; }
body.catx-on.cx-has-itemadd #form_item .form_select_box .form_select_box_L .form_select > div{ background: #FFF; border-color:#4D8DFF; }
body.catx-on.cx-has-itemadd #form_item .form_select_box .form_select_box_L .form_select > div.on{ color: #FFF; background:#4D8DFF; }
body.catx-on.cx-has-itemadd #form_item .form_select_box .form_select_box_R .btn_adDeclare:hover{ color:#4D8DFF; border-color:#4D8DFF; }
body.catx-on.cx-has-itemadd #form_item .form_select_box .form_select_box_R .btn_adDeclare:hover i.fa-chevron-right{ color:#4D8DFF; }
body.catx-on.cx-has-itemadd #form_item .form_select_box .form_select_box_R > .save_btn_copy{ background:#4D8DFF !important; color:#FFF; border-color:#4D8DFF !important; }
body.catx-on.cx-has-itemadd #form_item .form_select_box .form_select_box_R > .save_btn_copy:hover{ color:#4D8DFF !important; background: #FFF  !important; }
body.catx-on.cx-has-itemadd #form_item .box_content_box .form_box_wrap .form_table_box_wrap > .form_table_box .form_table_box_tt .form_table_box_tt_btn .setting_btn:hover{ background:#4D8DFF; color: #FFF; border-color:#4D8DFF; }
body.catx-on.cx-has-itemadd #form_item .box_content_box .form_box_wrap .form_table_box_wrap > .form_table_box .form_table_box_tt .buttons_boxs{ border-color:#4D8DFF; }
body.catx-on.cx-has-itemadd #form_item .box_content_box .form_box_wrap .buttons_boxs label span{ color:#4D8DFF; background: #FFF; border-color:#4D8DFF; }
body.catx-on.cx-has-itemadd #form_item .box_content_box .form_box_wrap .is_hidden.buttons_boxs label span{ color:#4D8DFF; background: #FFF; border-color:#4D8DFF; }
body.catx-on.cx-has-itemadd #form_item .box_content_box .form_box_wrap .buttons_boxs:not(#item_range) label input:checked + span{ color: #FFF; background:#4D8DFF; }
body.catx-on.cx-has-itemadd #form_item .box_content_box .form_box_wrap .buttons_boxs label.active span{ color: #FFF; background:#4D8DFF; }
body.catx-on.cx-has-itemadd #form_item .box_content_box .form_box_wrap#form_location_info .form_title .btn_adDeclare:hover{ color:#4D8DFF; border-color:#4D8DFF; }
body.catx-on.cx-has-itemadd #form_item .box_content_box .form_box_wrap#form_location_info .form_title .btn_adDeclare:hover i.fa-chevron-right{ color:#4D8DFF; }
body.catx-on.cx-has-itemadd #form_item .box_content_box .form_box_wrap#form_location_info .form_title .setting_btn:hover{ background:#4D8DFF; color: #FFF; border-color:#4D8DFF; }
body.catx-on.cx-has-itemadd #form_item .box_content_box .form_box_wrap#form_price_info .form_title .setting_btn:hover{ background:#4D8DFF; color: #FFF; border-color:#4D8DFF; }
body.catx-on.cx-has-itemadd #form_item .box_content_box .form_box_wrap#form_price_info .con_manage_box.manage_fee_box .fee_list .fee_plus{ border-color:#4D8DFF; color: #FFF; background:#4D8DFF; }
body.catx-on.cx-has-itemadd #form_item .box_content_box .form_box_wrap#form_price_info .con_manage_box.manage_fee_box .fee_list .fee_plus:hover{ color:#4D8DFF; background: #FFF; }
body.catx-on.cx-has-itemadd #form_item .box_content_box .form_box_wrap#form_price_info .manage_detail_box .manage_detail_box_list_box .manage_detail_box_list_box_cnt .fee_plus{ border-color:#4D8DFF; color: #FFF; background:#4D8DFF; }
body.catx-on.cx-has-itemadd #form_item .box_content_box .form_box_wrap#form_price_info .manage_detail_box .manage_detail_box_list_box .manage_detail_box_list_box_cnt .fee_plus:hover{ color:#4D8DFF; background: #FFF; }
body.catx-on.cx-has-itemadd #form_item .box_content_box .form_box_wrap.form_detail_photo_tab .detail_photo_tab_btn_box > div{ background: #F3F9FF; border-color:#4D8DFF; color:#4D8DFF; }
body.catx-on.cx-has-itemadd #form_item .box_content_box .form_box_wrap.form_detail_photo_tab .detail_photo_tab_btn_box > div.on{ background:#4D8DFF; color: #FFF; }
body.catx-on.cx-has-itemadd #form_item .box_content_box .form_box_wrap.form_building_toji_tab .building_toji_tab_btn_box{ background:var(--cx-row); }
body.catx-on.cx-has-itemadd #form_item .box_content_box .form_box_wrap.form_building_toji_tab .building_toji_tab_btn_box > div{ background: #F3F9FF; border-color:#4D8DFF; color:#4D8DFF; }
body.catx-on.cx-has-itemadd #form_item .box_content_box .form_box_wrap.form_building_toji_tab .building_toji_tab_btn_box > div.on{ background:#4D8DFF; color: #FFF; }
body.catx-on.cx-has-itemadd #form_item .box_content_box .form_box_wrap#form_toji_info .con_dong_box .input-group input{ border-color:#4D8DFF; }
body.catx-on.cx-has-itemadd #form_item .box_content_box .form_box_wrap#form_toji_info .con_box.con_dong_box .toji_soyu{ color:#4D8DFF; background: #fff; border-color:#4D8DFF; }
body.catx-on.cx-has-itemadd #form_item .box_content_box .form_box_wrap#form_toji_info .con_box.con_dong_box .toji_soyu:hover{ background:#4D8DFF; color: #fff; }
body.catx-on.cx-has-itemadd #form_item .box_content_box .form_box_wrap#form_officer_info .setting_btn:hover{ background:#4D8DFF; border-color:#4D8DFF; color: #FFF; }
body.catx-on.cx-has-itemadd #form_item .box_content_box .form_box_wrap#form_officer_info .input_span input{ border-color:#4D8DFF; }
body.catx-on.cx-has-itemadd #form_item .box_content_box .form_box_wrap#form_officer_info .input_span span{ background:#4D8DFF; color: #FFF; border-color:#4D8DFF; }
body.catx-on.cx-has-itemadd #form_item .box_content_box .form_box_wrap#form_officer_info .input_span span:hover{ color:#4D8DFF; background: #FFF; }
body.catx-on.cx-has-itemadd #form_item .box_content_box .form_box_wrap#form_officer_info .select_box_wrap .select_box_wrap_top .customer_tip{ color:#4D8DFF; }
body.catx-on.cx-has-itemadd #form_item .form_box_wrap#form_building_info .address_tr .con_box .build_searchs input{ border-color:#4D8DFF; }
body.catx-on.cx-has-itemadd #form_item .form_btn_box .btn.save_btn_copy{ background:#4D8DFF; border-color:#4D8DFF; }
body.catx-on.cx-has-itemadd #form_item .form_btn_box .btn.save_btn_copy:hover{ background:#fff; color:#4D8DFF; }
body.catx-on.cx-has-itemadd .new_existingCustomerInfo_wrap .modal_box.blue.active, body.catx-on.cx-has-itemadd .new_existingCustomerInfo_wrap .modal_box.blue:hover{ border-color:#4D8DFF; }
body.catx-on.cx-has-itemadd .new_existingCustomerInfo_wrap .modal_box .customer_info_boxs_wrap .customer_info_boxs_R .blue:hover{ background:#4D8DFF; border-color:#4D8DFF; color: #FFF; }
body.catx-on.cx-has-itemadd .new_sortation.blue{ background:#4D8DFF; border-color:#4D8DFF; }
body.catx-on.cx-has-itemadd #price_setting_modal .modal_wrap_ver1 .modal_content .price_table_body .dd-item > div:nth-child(1) .move_btn > span:hover{ border-color:#4D8DFF; color:#4D8DFF; }
body.catx-on.cx-has-itemadd #customer_setting_modal .modal_wrap_ver1 .customer_select_box{ border-color:#4D8DFF; background:#4D8DFF; }
body.catx-on.cx-has-itemadd #customer_setting_modal .modal_wrap_ver1 .customer_select_box > label input + span{ color:#4D8DFF; }
body.catx-on.cx-has-itemadd #customer_setting_modal .modal_wrap_ver1 .customer_select_box > label input:checked + span{ color: #FFF; background:#4D8DFF; }
body.catx-on.cx-has-itemadd #modal-member_customer .modal_wrap_ver1 .modal_content .register_wrap_btm .register_type_tab{ border-color:#4D8DFF; background: #FFF; }
body.catx-on.cx-has-itemadd #modal-member_customer .modal_wrap_ver1 .modal_content .register_wrap_btm .register_type_tab label span{ color:#4D8DFF; }
body.catx-on.cx-has-itemadd #modal-member_customer .modal_wrap_ver1 .modal_content .register_wrap_btm .register_type_tab label.on span{ color: #FFF; background:#4D8DFF; }
body.catx-on.cx-has-itemadd #modal-ownerFind .modal_box:hover{ background: #EBF2FF; border-color:#4D8DFF; }
body.catx-on.cx-has-itemadd #modal-ownerFind .modal_box:hover .customer_info_boxs_R label{ background:#4D8DFF; border-color:#4D8DFF; color: #FFF; }
body.catx-on.cx-has-itemadd #modal-ownerFind .modal_box .customer_info_boxs_R label:hover{ background:#4D8DFF; border-color:#4D8DFF; color: #FFF; }
body.catx-on.cx-has-itemadd #modal-ownerFind .modal_box .customer_info_boxs_R label i{ color:#4D8DFF; }
body.catx-on.cx-has-itemadd #modal-ownerFind .modal_btn_box .pagination > .active > span:hover{ border-color:#4D8DFF !important; background-color:#4D8DFF !important; color:#FFF  !important; }
body.catx-on.cx-has-itemadd #modal_building .modal_top_btn>.btn_add_building{ border-color:#4D8DFF; background-color:#4D8DFF; color:#fff; }
body.catx-on.cx-has-itemadd #modal_building .modal_top_btn>.btn_add_building:hover{ background-color:#fff; color:#4D8DFF; }
body.catx-on.cx-has-itemadd .custom_chk input:checked+label{ border-color:#4D8DFF; background-color:#4D8DFF; }
body.catx-on.cx-has-itemadd .address_tr .inputBox2>span{ background:#4D8DFF; color:#fff; }
body.catx-on.cx-has-itemadd .address_tr .btn_searchN{ background:#4D8DFF; border-color:#4D8DFF; color:#fff; }
body.catx-on.cx-has-itemadd .section_box_wrap .fa-info-circle:hover{ color:#4D8DFF; }
body.catx-on.cx-has-itemadd .arch_dong_jibun span.building_pdf_btn{ background:#4D8DFF; color: #fff; border-color:#4D8DFF; }
body.catx-on.cx-has-itemadd .arch_dong_jibun span.building_pdf_btn:hover{ background: #FFF  !important; color:#4D8DFF !important; }
body.catx-on.cx-has-itemadd .arch_dong_jibun span.building_pdf_btn:hover > i{ color:#4D8DFF; }
body.catx-on.cx-has-itemadd .arch_dong_jibun span.building_pdf_btn:hover > span{ color:#4D8DFF !important; }

/* ── 11. 고객 검색 결과 모달(#modal-ownerFind) — 매물목록 고객 검색 모달과 같은 스타일로 ──
 *  카드형 테두리 대신 '평평한 목록 + 얇은 구분선', 알약형 버튼/페이지네이션.
 *  위 자동 생성 블록보다 뒤에 두고 동일 접두(:has)를 써서 특이도·순서를 함께 맞춘다.
 *  구조·스크립트 불변(행은 JS 가 만드는 .modal_box). */
body.catx-on.cx-has-itemadd #modal-ownerFind .modal-dialog{
	width:min(560px, calc(100% - 32px));
	border:0 !important; box-shadow:none !important; background:transparent !important;
}
body.catx-on.cx-has-itemadd #modal-ownerFind .modal_wrap_ver1{
	background:#FFFFFF; border:1px solid #E6EAF0; border-radius:16px;  /* 시안 기준 (15~20px 대) */
	box-shadow:0 12px 32px rgba(30,45,70,.16); overflow:hidden; }

/* 헤더: 흰 배경 + 얇은 구분선, 제목 좌측 정렬 */
body.catx-on.cx-has-itemadd #modal-ownerFind .modal_title{
	display:flex; align-items:center; justify-content:flex-start; gap:10px;
	padding:18px 22px; background:#FFFFFF; border-bottom:1px solid #EEF1F5; }
body.catx-on.cx-has-itemadd #modal-ownerFind .modal_title h4{
	margin:0; flex:1 1 auto; text-align:left; font-size:17px; font-weight:700; color:#172B4D; }
body.catx-on.cx-has-itemadd #modal-ownerFind .modal_title .add_new_customer{
	flex:0 0 auto; height:30px; padding:0 12px; display:inline-flex; align-items:center; gap:5px;
	border-radius:8px; border:1px solid #D5DCE5; background:#FFFFFF;
	color:#1F2937; font-size:var(--dash-font-12_5, 12.5px); font-weight:600; line-height:1; }
body.catx-on.cx-has-itemadd #modal-ownerFind .modal_title .add_new_customer:hover{
	border-color:#4D8DFF; color:#4D8DFF; background:rgba(77,141,255,.08); }
body.catx-on.cx-has-itemadd #modal-ownerFind .modal_title .close{
	flex:0 0 auto; width:28px; height:28px; padding:0; border:0; background:none;
	display:flex; align-items:center; justify-content:center; color:#64748B; opacity:1; }
body.catx-on.cx-has-itemadd #modal-ownerFind .modal_title .close:hover{ color:#1F2937; }

/* 본문: 카드 테두리 제거 → 구분선만 있는 평평한 목록 */
body.catx-on.cx-has-itemadd #modal-ownerFind .modal_content{ padding:2px 22px; background:#FFFFFF; }
body.catx-on.cx-has-itemadd #modal-ownerFind .modal_content .modal_box{
	border:0; border-bottom:1px solid #EEF1F5; border-radius:0; background:transparent;
	margin:0; padding:13px 0; box-shadow:none; }
body.catx-on.cx-has-itemadd #modal-ownerFind .modal_content .modal_box:last-child{ border-bottom:0; }
body.catx-on.cx-has-itemadd #modal-ownerFind .modal_content .modal_box:hover{
	border-color:#EEF1F5; background:rgba(77,141,255,.04); }
body.catx-on.cx-has-itemadd #modal-ownerFind .modal_content .bold_span{ color:#1F2937; font-weight:700; }
body.catx-on.cx-has-itemadd #modal-ownerFind .modal_content .customer_info_boxs_btm{ color:#64748B; }

/* 선택 버튼: 알약형 아웃라인 */
body.catx-on.cx-has-itemadd #modal-ownerFind .modal_box .customer_info_boxs_R label,
body.catx-on.cx-has-itemadd #modal-ownerFind .customer_info_boxs_R.radio .btn{
	border:1px solid #D5DCE5; border-radius:8px; background:#FFFFFF; color:#1F2937; }
body.catx-on.cx-has-itemadd #modal-ownerFind .modal_box:hover .customer_info_boxs_R label,
body.catx-on.cx-has-itemadd #modal-ownerFind .modal_box .customer_info_boxs_R label:hover,
body.catx-on.cx-has-itemadd #modal-ownerFind .customer_info_boxs_R.radio .btn:hover{
	border-color:#4D8DFF; background:rgba(77,141,255,.08); color:#4D8DFF; }
body.catx-on.cx-has-itemadd #modal-ownerFind .modal_box .customer_info_boxs_R label i{ color:#4D8DFF; }

/* 푸터: 알약형 페이지네이션, 활성 = 채운 파랑 */
body.catx-on.cx-has-itemadd #modal-ownerFind .modal_btn_box{
	padding:12px 16px; background:#FFFFFF; border-top:1px solid #EEF1F5; }
body.catx-on.cx-has-itemadd #modal-ownerFind .pagination{ margin:0; }
body.catx-on.cx-has-itemadd #modal-ownerFind .pagination > li > a,
body.catx-on.cx-has-itemadd #modal-ownerFind .pagination > li > span{
	margin:0 2px; border:1px solid #E6EAF0; border-radius:8px; color:#64748B; background:#FFFFFF; }  /* 크기는 원본 유지, 색/라운드만 */
body.catx-on.cx-has-itemadd #modal-ownerFind .pagination > li > a:hover{
	border-color:#4D8DFF; color:#4D8DFF; background:rgba(77,141,255,.08); }
body.catx-on.cx-has-itemadd #modal-ownerFind .pagination > .active > a,
body.catx-on.cx-has-itemadd #modal-ownerFind .pagination > .active > span,
body.catx-on.cx-has-itemadd #modal-ownerFind .modal_btn_box .pagination > .active > span:hover{
	background:#4D8DFF; border-color:#4D8DFF; color:#FFFFFF; }

/* 결과 행 세로 중앙 정렬.
 * 구조 확인: .modal_box > [ .customer_info_boxs_wrap , .customer_info_boxs_R.radio ] — 선택 버튼은
 * wrap 의 '형제'다(wrap 안이 아님). 그래서 wrap 에 flex 를 걸면 버튼이 flex 항목이 아니어서
 * float 만 잃고 아래로 떨어진다 → 부모인 .modal_box 를 flex 로 만든다.
 * float 는 flex 항목에서 자동 무시되므로 따로 해제하지 않는다(순서·크기 불변). */
body.catx-on.cx-has-itemadd #modal-ownerFind .modal_content .modal_box{
	display:flex; align-items:center; gap:12px; }
body.catx-on.cx-has-itemadd #modal-ownerFind .modal_content .modal_box > .customer_info_boxs_wrap{
	flex:1 1 auto; min-width:0; }
body.catx-on.cx-has-itemadd #modal-ownerFind .modal_content .modal_box > .customer_info_boxs_R{
	flex:0 0 auto; }

/* 매물 등록폼의 기본 설정 모달 네 곳: 기존 크기와 배치는 유지한다. */
body.catx-on.cx-has-formitem :is(#location_setting_modal, #price_setting_modal, #customer_setting_modal, #modal_building) .modal-dialog{
	border:0 !important; box-shadow:none !important; background:transparent !important;
}
body.catx-on.cx-has-formitem :is(#location_setting_modal, #price_setting_modal, #customer_setting_modal, #modal_building) .modal_wrap_ver1{
	background:var(--cx-panel) !important; border:1px solid var(--cx-line) !important;
	border-radius:12px !important; box-shadow:0 18px 48px rgba(14,32,55,.22) !important;
}
body.catx-on.cx-has-formitem :is(#location_setting_modal, #price_setting_modal, #customer_setting_modal, #modal_building) .modal_title{
	background:var(--cx-panel) !important; border-bottom:1px solid var(--cx-line-soft) !important;
	border-radius:11px 11px 0 0 !important;
}
body.catx-on.cx-has-formitem :is(#location_setting_modal, #price_setting_modal, #customer_setting_modal, #modal_building) .modal_title h4{
	color:var(--cx-strong) !important; font-size:16px !important; font-weight:700 !important;
}
body.catx-on.cx-has-formitem #location_setting_modal .modal_title h4{
	width:max-content; max-width:calc(100% - 72px); white-space:nowrap;
	overflow:hidden; text-overflow:ellipsis;
}
@media (max-width:380px){
	body.catx-on.cx-has-formitem #location_setting_modal .modal_title h4{ font-size:14px !important; }
}
body.catx-on.cx-has-formitem :is(#location_setting_modal, #price_setting_modal, #customer_setting_modal, #modal_building) .modal_title .close,
body.catx-on.cx-has-formitem :is(#location_setting_modal, #price_setting_modal, #customer_setting_modal, #modal_building) .modal_title .close i{
	color:var(--cx-body) !important; opacity:1 !important;
}
body.catx-on.cx-has-formitem :is(#location_setting_modal, #price_setting_modal, #customer_setting_modal, #modal_building) .modal_title .close:hover,
body.catx-on.cx-has-formitem :is(#location_setting_modal, #price_setting_modal, #customer_setting_modal, #modal_building) .modal_title .close:hover i{
	color:var(--cx-accent) !important;
}
body.catx-on.cx-has-formitem :is(#location_setting_modal, #price_setting_modal, #customer_setting_modal, #modal_building) .modal_content{
	background:var(--cx-panel) !important; color:var(--cx-text) !important;
}
body.catx-on.cx-has-formitem :is(#location_setting_modal, #price_setting_modal, #customer_setting_modal) .modal_content .ex_box{
	background:color-mix(in oklab, var(--cx-red) 8%, var(--cx-panel)) !important;
	border:1px solid color-mix(in oklab, var(--cx-red) 42%, var(--cx-line)) !important;
	border-radius:8px !important;
}
body.catx-on.cx-has-formitem :is(#location_setting_modal, #price_setting_modal, #customer_setting_modal) .modal_content .ex_box li,
body.catx-on.cx-has-formitem :is(#location_setting_modal, #price_setting_modal, #customer_setting_modal) .modal_content .ex_box li span{
	color:var(--cx-red) !important; line-height:1.45 !important;
}
body.catx-on.cx-has-formitem :is(#location_setting_modal, #price_setting_modal, #customer_setting_modal) .modal_btn_box{
	background:var(--cx-panel) !important; border-top:1px solid var(--cx-line-soft) !important;
}
body.catx-on.cx-has-formitem :is(#location_setting_modal, #price_setting_modal, #customer_setting_modal) .modal_btn_box .btn{
	border-radius:7px !important; font-weight:600 !important;
}
body.catx-on.cx-has-formitem :is(#location_setting_modal, #price_setting_modal, #customer_setting_modal) .modal_btn_box .btn:not(.btn_close){
	background:var(--cx-accent) !important; border-color:var(--cx-accent) !important; color:#fff !important;
}
body.catx-on.cx-has-formitem :is(#location_setting_modal, #price_setting_modal, #customer_setting_modal) .modal_btn_box .btn_close{
	background:var(--cx-row) !important; border-color:var(--cx-line) !important; color:var(--cx-body) !important;
}
body.catx-on.cx-has-formitem #location_setting_modal .location_selet_box select{
	background-color:var(--cx-panel) !important; border-color:var(--cx-line) !important;
	border-radius:7px !important; color:var(--cx-text) !important;
}
body.catx-on.cx-has-formitem #location_setting_modal .location_selet_box select:focus{
	border-color:var(--cx-accent) !important; box-shadow:0 0 0 3px color-mix(in oklab, var(--cx-accent) 18%, transparent) !important;
}
body.catx-on.cx-has-formitem #price_setting_modal .price_table_head{
	background:var(--cx-row) !important; border-bottom-color:var(--cx-line) !important; color:var(--cx-strong) !important;
}
body.catx-on.cx-has-formitem #price_setting_modal .price_table_body .dd-item:not(:last-child){ border-bottom-color:var(--cx-line-soft) !important; }
body.catx-on.cx-has-formitem #price_setting_modal .price_table_body .dd-item .dd-content,
body.catx-on.cx-has-formitem #price_setting_modal .price_table_body .dd-item .dd-handle{
	background:var(--cx-panel) !important; color:var(--cx-text) !important;
}
body.catx-on.cx-has-formitem #price_setting_modal .price_table_body .dd-item .move_btn > span{
	background:var(--cx-row) !important; border-color:var(--cx-line) !important; color:var(--cx-body) !important;
}
body.catx-on.cx-has-formitem #price_setting_modal .price_table_body .dd-item .move_btn > span:hover{
	border-color:var(--cx-accent) !important; color:var(--cx-accent) !important;
}
body.catx-on.cx-has-formitem #customer_setting_modal .customer_select_box{
	border-color:var(--cx-accent) !important; border-radius:7px !important; background:var(--cx-panel) !important;
}
body.catx-on.cx-has-formitem #customer_setting_modal .customer_select_box > label{ background:var(--cx-panel) !important; }
body.catx-on.cx-has-formitem #customer_setting_modal .customer_select_box > label input + span{ color:var(--cx-accent) !important; }
body.catx-on.cx-has-formitem #customer_setting_modal .customer_select_box > label input:checked + span{
	background:var(--cx-accent) !important; color:#fff !important;
}
body.catx-on.cx-has-formitem #modal_building .modal_top_btn > span{
	border-radius:7px !important; font-weight:600 !important;
}
body.catx-on.cx-has-formitem #modal_building .modal_top_btn > .btn_add_building{
	background:var(--cx-accent) !important; border-color:var(--cx-accent) !important; color:#fff !important;
}
body.catx-on.cx-has-formitem #modal_building .modal_top_btn > .btn_all_off{
	background:var(--cx-panel) !important; border-color:var(--cx-red) !important; color:var(--cx-red) !important;
}
body.catx-on.cx-has-formitem #modal_building .modal_top_txt{ color:var(--cx-red) !important; }
body.catx-on.cx-has-formitem #modal_building table th{
	background:var(--cx-row) !important; color:var(--cx-strong) !important; border-bottom:1px solid var(--cx-line) !important;
}
body.catx-on.cx-has-formitem #modal_building table td{ color:var(--cx-text) !important; }
body.catx-on.cx-has-formitem #modal_building table tbody > tr{ border-bottom-color:var(--cx-line-soft) !important; }
body.catx-on.cx-has-formitem #modal_building table tbody > tr:hover{ background:var(--cx-hover-bg) !important; }

/* 네 모달의 조작 상태. 테두리와 색만 바꾸고 버튼·입력칸의 크기는 유지한다. */
body.catx-on.cx-has-formitem :is(#location_setting_modal, #price_setting_modal, #customer_setting_modal) .modal_btn_box{
	border-radius:0 0 11px 11px !important;
}
body.catx-on.cx-has-formitem #modal_building .modal_content{ border-radius:0 0 11px 11px !important; }
body.catx-on.cx-has-formitem :is(#location_setting_modal, #price_setting_modal, #customer_setting_modal) .modal_btn_box .btn,
body.catx-on.cx-has-formitem #modal_building .modal_top_btn > span{
	transition:background-color .16s ease, border-color .16s ease, color .16s ease, box-shadow .16s ease, filter .16s ease !important;
}
body.catx-on.cx-has-formitem :is(#location_setting_modal, #price_setting_modal, #customer_setting_modal) .modal_btn_box .btn:not(.btn_close):hover,
body.catx-on.cx-has-formitem #modal_building .modal_top_btn > .btn_add_building:hover{
	background:color-mix(in oklab, var(--cx-accent) 85%, #15233b) !important;
	border-color:color-mix(in oklab, var(--cx-accent) 85%, #15233b) !important; color:#fff !important;
}
body.catx-on.cx-has-formitem :is(#location_setting_modal, #price_setting_modal, #customer_setting_modal) .modal_btn_box .btn_close:hover{
	background:var(--cx-hover-bg) !important; border-color:var(--cx-accent) !important; color:var(--cx-accent) !important;
}
body.catx-on.cx-has-formitem #modal_building .modal_top_btn > .btn_all_off:hover{
	background:color-mix(in oklab, var(--cx-red) 11%, var(--cx-panel)) !important; border-color:var(--cx-red) !important;
}
body.catx-on.cx-has-formitem :is(#location_setting_modal, #price_setting_modal, #customer_setting_modal, #modal_building) .modal_title .close:hover{
	background:var(--cx-row) !important; border-radius:6px !important;
}
body.catx-on.cx-has-formitem :is(#location_setting_modal, #price_setting_modal, #customer_setting_modal) .modal_btn_box .btn:focus-visible,
body.catx-on.cx-has-formitem #modal_building .modal_top_btn > span:focus-visible{
	outline:2px solid var(--cx-accent) !important; outline-offset:2px !important;
}
body.catx-on.cx-has-formitem #location_setting_modal .location_selet_box .select_box select,
body.catx-on.cx-has-formitem #modal_building table :is(select, .dropdown-toggle){
	transition:border-color .16s ease, box-shadow .16s ease, background-color .16s ease !important;
}
body.catx-on.cx-has-formitem #location_setting_modal .location_selet_box .select_box select:hover,
body.catx-on.cx-has-formitem #modal_building table :is(select, .dropdown-toggle):hover{
	border-color:var(--cx-accent) !important; background-color:var(--cx-row) !important;
}
body.catx-on.cx-has-formitem #location_setting_modal .location_selet_box .select_box:focus-within select,
body.catx-on.cx-has-formitem #modal_building table :is(select, .dropdown-toggle):focus,
body.catx-on.cx-has-formitem #modal_building table .bootstrap-select.open > .dropdown-toggle{
	outline:0 !important; border-color:var(--cx-accent) !important;
	box-shadow:0 0 0 3px color-mix(in oklab, var(--cx-accent) 22%, transparent) !important;
}
/* 공통 Nestable의 장식 화살표가 실제 위·아래 순서 버튼 위에 중복으로 그려지는 것만 막는다. */
html body.catx-on.cx-has-formitem #price_setting_modal .price_table_body .dd-item > .dd3-handle::before,
html body.catx-on.cx-has-formitem #price_setting_modal .price_table_body .dd-item > .dd3-handle::after{
	content:none !important; display:none !important; background:none !important;
}
body.catx-on.cx-has-formitem #price_setting_modal .price_table_body .dd-item .move_btn > span:hover{
	background:var(--cx-hover-bg) !important; border-color:var(--cx-accent) !important; color:var(--cx-accent) !important;
}
body.catx-on.cx-has-formitem #customer_setting_modal .customer_select_box > label:hover input:not(:checked) + span{
	background:var(--cx-hover-bg) !important;
}
body.catx-on.cx-has-formitem #customer_setting_modal .customer_select_box > label:hover input:checked + span{
	background:color-mix(in oklab, var(--cx-accent) 85%, #15233b) !important;
}
body.catx-on.cx-has-formitem #modal_building table :is(.building_btn, .building_btn2).on:hover{
	background:var(--cx-accent) !important; border-color:var(--cx-accent) !important; color:#fff !important;
}

/* 방향 기본 등록 모달: 다른 catx 설정 모달과 같은 표면·조작 상태를 적용한다. */
body.catx-on.cx-has-formitem #direction_setting_modal .modal-dialog{
	border:0 !important; box-shadow:none !important; background:transparent !important;
}
body.catx-on.cx-has-formitem #direction_setting_modal .modal_wrap_ver1{
	background:var(--cx-panel) !important; border:1px solid var(--cx-line) !important;
	border-radius:12px !important; box-shadow:0 18px 48px rgba(14,32,55,.22) !important;
}
body.catx-on.cx-has-formitem #direction_setting_modal .modal_title{
	background:var(--cx-panel) !important; border-bottom:1px solid var(--cx-line-soft) !important;
	border-radius:11px 11px 0 0 !important;
}
body.catx-on.cx-has-formitem #direction_setting_modal .modal_title h4{
	color:var(--cx-strong) !important; font-size:16px !important; font-weight:700 !important;
}
body.catx-on.cx-has-formitem #direction_setting_modal .modal_title .close,
body.catx-on.cx-has-formitem #direction_setting_modal .modal_title .close i{
	color:var(--cx-body) !important; opacity:1 !important;
}
body.catx-on.cx-has-formitem #direction_setting_modal .modal_title .close:hover{
	background:var(--cx-row) !important; border-radius:6px !important;
}
body.catx-on.cx-has-formitem #direction_setting_modal .modal_title .close:hover,
body.catx-on.cx-has-formitem #direction_setting_modal .modal_title .close:hover i{
	color:var(--cx-accent) !important;
}
body.catx-on.cx-has-formitem #direction_setting_modal .modal_content{
	background:var(--cx-panel) !important; color:var(--cx-text) !important;
}
body.catx-on.cx-has-formitem #direction_setting_modal .modal_content .ex_box{
	background:color-mix(in oklab, var(--cx-red) 8%, var(--cx-panel)) !important;
	border:1px solid color-mix(in oklab, var(--cx-red) 42%, var(--cx-line)) !important;
	border-radius:8px !important;
}
body.catx-on.cx-has-formitem #direction_setting_modal .modal_content .ex_box li,
body.catx-on.cx-has-formitem #direction_setting_modal .modal_content .ex_box li span{
	color:var(--cx-red) !important; line-height:1.45 !important;
}
body.catx-on.cx-has-formitem #direction_setting_modal .direction_box .select_box select{
	background-color:var(--cx-panel) !important; border-color:var(--cx-line) !important;
	border-radius:7px !important; color:var(--cx-text) !important;
	transition:border-color .16s ease, box-shadow .16s ease, background-color .16s ease !important;
}
body.catx-on.cx-has-formitem #direction_setting_modal .direction_box .select_box select:hover{
	border-color:var(--cx-accent) !important; background-color:var(--cx-row) !important;
}
body.catx-on.cx-has-formitem #direction_setting_modal .direction_box .select_box:focus-within select{
	outline:0 !important; border-color:var(--cx-accent) !important;
	box-shadow:0 0 0 3px color-mix(in oklab, var(--cx-accent) 22%, transparent) !important;
}
body.catx-on.cx-has-formitem #direction_setting_modal .modal_btn_box{
	background:var(--cx-panel) !important; border-top:1px solid var(--cx-line-soft) !important;
	border-radius:0 0 11px 11px !important;
}
body.catx-on.cx-has-formitem #direction_setting_modal .modal_btn_box .btn{
	border-radius:7px !important; font-weight:600 !important;
	transition:background-color .16s ease, border-color .16s ease, color .16s ease !important;
}
body.catx-on.cx-has-formitem #direction_setting_modal .modal_btn_box .btn:not(.btn_close){
	background:var(--cx-accent) !important; border-color:var(--cx-accent) !important; color:#fff !important;
}
body.catx-on.cx-has-formitem #direction_setting_modal .modal_btn_box .btn:not(.btn_close):hover{
	background:color-mix(in oklab, var(--cx-accent) 85%, #15233b) !important;
	border-color:color-mix(in oklab, var(--cx-accent) 85%, #15233b) !important;
}
body.catx-on.cx-has-formitem #direction_setting_modal .modal_btn_box .btn_close{
	background:var(--cx-row) !important; border-color:var(--cx-line) !important; color:var(--cx-body) !important;
}
body.catx-on.cx-has-formitem #direction_setting_modal .modal_btn_box .btn_close:hover{
	background:var(--cx-hover-bg) !important; border-color:var(--cx-accent) !important; color:var(--cx-accent) !important;
}
body.catx-on.cx-has-formitem #direction_setting_modal .modal_btn_box .btn:focus-visible{
	outline:2px solid var(--cx-accent) !important; outline-offset:2px !important;
}

/* 표제부 분석 모달의 네 상태는 동일한 catx 색과 테두리를 사용한다. */
body.catx-on.cx-has-formitem #modal-building-pdf-upload .modal-dialog{
	border:0 !important; box-shadow:none !important; background:transparent !important;
}
body.catx-on.cx-has-formitem #modal-building-pdf-upload .building_pdf_upload_modal{
	background:var(--cx-panel) !important; border:1px solid var(--cx-line) !important;
	border-radius:12px !important; box-shadow:0 18px 48px rgba(14,32,55,.22) !important;
}
body.catx-on.cx-has-formitem #modal-building-pdf-upload .modal_header{
	background:var(--cx-panel) !important; border-bottom-color:var(--cx-line-soft) !important;
}
body.catx-on.cx-has-formitem #modal-building-pdf-upload .modal_header .title{
	color:var(--cx-strong) !important; font-size:16px !important; font-weight:700 !important;
}
body.catx-on.cx-has-formitem #modal-building-pdf-upload .modal_header .close,
body.catx-on.cx-has-formitem #modal-building-pdf-upload .modal_header .close i{
	color:var(--cx-body) !important; opacity:1 !important;
}
body.catx-on.cx-has-formitem #modal-building-pdf-upload .modal_header .close{
	width:32px; height:32px; display:flex; align-items:center; justify-content:center;
	background:transparent !important; border-radius:8px !important;
	transition:background-color .15s ease, color .15s ease;
}
body.catx-on.cx-has-formitem #modal-building-pdf-upload .modal_header .close:hover,
body.catx-on.cx-has-formitem #modal-building-pdf-upload .modal_header .close:focus-visible{
	background:color-mix(in oklab, var(--cx-red) 12%, var(--cx-panel)) !important;
}
body.catx-on.cx-has-formitem #modal-building-pdf-upload .modal_header .close:focus-visible{
	outline:2px solid var(--cx-red); outline-offset:1px;
}
body.catx-on.cx-has-formitem #modal-building-pdf-upload .modal_header .close:is(:hover, :focus-visible),
body.catx-on.cx-has-formitem #modal-building-pdf-upload .modal_header .close:is(:hover, :focus-visible) i{
	color:var(--cx-red) !important;
}
body.catx-on.cx-has-formitem #modal-building-pdf-upload .modal_body{
	background:var(--cx-panel) !important; color:var(--cx-text) !important;
}
body.catx-on.cx-has-formitem #modal-building-pdf-upload .building_pdf_notice{
	background:color-mix(in oklab, var(--cx-red) 8%, var(--cx-panel)) !important;
	border:1px solid color-mix(in oklab, var(--cx-red) 28%, var(--cx-line)) !important;
	border-radius:8px !important; color:var(--cx-body) !important;
}
body.catx-on.cx-has-formitem #modal-building-pdf-upload .building_pdf_notice p,
body.catx-on.cx-has-formitem #modal-building-pdf-upload .building_pdf_notice i{
	color:var(--cx-red) !important;
}
body.catx-on.cx-has-formitem #modal-building-pdf-upload .building_pdf_file_row .building_pdf_name{
	background:var(--cx-panel) !important; border-color:var(--cx-line) !important;
	color:var(--cx-body) !important; border-radius:7px 0 0 7px !important;
}
body.catx-on.cx-has-formitem #modal-building-pdf-upload :is(.building_pdf_file_row .building_pdf_file_btn, .btn_building_pdf_upload){
	background:var(--cx-accent) !important; border-color:var(--cx-accent) !important;
	color:#fff !important; font-weight:600 !important;
	transition:background-color .16s ease, border-color .16s ease, color .16s ease !important;
}
body.catx-on.cx-has-formitem #modal-building-pdf-upload .building_pdf_file_row .building_pdf_file_btn{
	border-radius:0 7px 7px 0 !important;
}
body.catx-on.cx-has-formitem #modal-building-pdf-upload .btn_building_pdf_upload{
	border-radius:7px !important;
}
body.catx-on.cx-has-formitem #modal-building-pdf-upload :is(.building_pdf_file_row .building_pdf_file_btn, .btn_building_pdf_upload):hover{
	background:color-mix(in oklab, var(--cx-accent) 85%, #15233b) !important;
	border-color:color-mix(in oklab, var(--cx-accent) 85%, #15233b) !important;
	color:#fff !important;
}
body.catx-on.cx-has-formitem #modal-building-pdf-upload :is(.building_pdf_file_row .building_pdf_file_btn, .btn_building_pdf_upload, .btn_close_pdf, .btn_retry_pdf):focus-visible{
	outline:2px solid var(--cx-accent) !important; outline-offset:2px !important;
}
body.catx-on.cx-has-formitem #modal-building-pdf-upload .building_pdf_spinner{
	border-color:color-mix(in oklab, var(--cx-accent) 15%, var(--cx-panel)) !important;
	border-top-color:var(--cx-accent) !important;
}
body.catx-on.cx-has-formitem #modal-building-pdf-upload h4{
	color:var(--cx-accent) !important;
}
body.catx-on.cx-has-formitem #modal-building-pdf-upload .state_fail h4{
	color:var(--cx-red) !important;
}
body.catx-on.cx-has-formitem #modal-building-pdf-upload .building_pdf_icon.pink{
	background:var(--cx-red) !important;
}
body.catx-on.cx-has-formitem #modal-building-pdf-upload .btn_close_pdf{
	background:var(--cx-row) !important; border-color:var(--cx-line) !important;
	border-radius:7px !important; color:var(--cx-body) !important;
}
body.catx-on.cx-has-formitem #modal-building-pdf-upload .btn_close_pdf:hover{
	background:var(--cx-hover-bg) !important; border-color:var(--cx-accent) !important; color:var(--cx-accent) !important;
}
body.catx-on.cx-has-formitem #modal-building-pdf-upload .btn_retry_pdf{
	background:var(--cx-red) !important; border-color:var(--cx-red) !important;
	border-radius:7px !important; color:#fff !important;
}
body.catx-on.cx-has-formitem #modal-building-pdf-upload .btn_retry_pdf:hover{
	filter:brightness(.9) !important;
}
body.catx-on.cx-has-formitem #modal-building-pdf-upload :is(.btn_close_pdf, .btn_retry_pdf){
	transition:background-color .16s ease, border-color .16s ease, color .16s ease, filter .16s ease !important;
}
body.catx-on.cx-has-formitem #modal-building-pdf-upload .arch_result_form :is(.title, .arch_parking_label){
	color:var(--cx-strong) !important;
}
body.catx-on.cx-has-formitem #modal-building-pdf-upload :is(.arch_result_grid, .state_success .arch_result_col){
	border-bottom-color:var(--cx-line-soft) !important;
}
body.catx-on.cx-has-formitem #modal-building-pdf-upload .arch_result_form input[type="text"]{
	background:var(--cx-panel) !important; border-color:var(--cx-line) !important;
	color:var(--cx-text) !important;
}
body.catx-on.cx-has-formitem #modal-building-pdf-upload .arch_result_form input[type="text"]:focus{
	outline:0 !important; border-color:var(--cx-accent) !important;
	box-shadow:0 0 0 3px color-mix(in oklab, var(--cx-accent) 18%, transparent) !important;
}
body.catx-on.cx-has-formitem #modal-building-pdf-upload :is(.input_unit span, .input_unit_2 span, .arch_parking_input span){
	background:var(--cx-row) !important; border-color:var(--cx-line) !important;
	color:var(--cx-body) !important;
}
body.catx-on.cx-has-formitem #modal-building-pdf-upload .arch_floor_box :is(th, td){
	border-color:var(--cx-line) !important; color:var(--cx-text) !important;
}
body.catx-on.cx-has-formitem #modal-building-pdf-upload .arch_floor_box th{
	background:var(--cx-row) !important; color:var(--cx-strong) !important;
}

/* 건축물대장 발급: 선택 화면과 발급 진행 화면의 외형만 catx 매물등록폼에 적용한다. */
body.catx-on.cx-has-formitem #modal-building-search .modal-dialog{
	border:0 !important; background:transparent !important; box-shadow:none !important;
}
body.catx-on.cx-has-formitem #modal-building-search .modal_wrap_ver1{
	background:var(--cx-panel) !important; border:1px solid var(--cx-line) !important;
	border-radius:12px !important; box-shadow:0 18px 48px rgba(14,32,55,.22) !important;
	overflow:hidden;
}
body.catx-on.cx-has-formitem #modal-building-search .modal_title{
	background:var(--cx-panel) !important; border-bottom:1px solid var(--cx-line-soft) !important;
	border-radius:11px 11px 0 0 !important;
}
body.catx-on.cx-has-formitem #modal-building-search .modal_title h4{
	color:var(--cx-strong) !important; font-size:16px !important; font-weight:700 !important;
}
body.catx-on.cx-has-formitem #modal-building-search .modal_title .close{
	width:32px; height:32px; display:flex; align-items:center; justify-content:center;
	background:transparent !important; color:var(--cx-body) !important;
	border-radius:8px !important; opacity:1 !important;
	transition:background-color .16s ease, color .16s ease;
}
body.catx-on.cx-has-formitem #modal-building-search .modal_title .close i{ color:inherit !important; }
body.catx-on.cx-has-formitem #modal-building-search .modal_title .close:hover,
body.catx-on.cx-has-formitem #modal-building-search .modal_title .close:focus-visible{
	background:color-mix(in oklab, var(--cx-red) 12%, var(--cx-panel)) !important;
	color:var(--cx-red) !important;
}
body.catx-on.cx-has-formitem #modal-building-search .modal_title .close:focus-visible{
	outline:2px solid var(--cx-red); outline-offset:1px;
}
body.catx-on.cx-has-formitem #modal-building-search .modal_title .btn_go_url{
	background:var(--cx-row) !important; border-color:var(--cx-line) !important;
	color:var(--cx-body) !important; border-radius:6px !important;
	transition:background-color .16s ease, border-color .16s ease, color .16s ease;
}
body.catx-on.cx-has-formitem #modal-building-search .modal_title .btn_go_url:hover{
	background:var(--cx-hover-bg) !important; border-color:var(--cx-accent) !important;
	color:var(--cx-accent) !important;
}
body.catx-on.cx-has-formitem #modal-building-search .select_b_info{
	background:var(--cx-row) !important; border-bottom:1px solid var(--cx-line-soft) !important;
	color:var(--cx-strong) !important;
}
body.catx-on.cx-has-formitem #modal-building-search .select_b_info .addr i{ color:var(--cx-accent) !important; }
body.catx-on.cx-has-formitem #modal-building-search .b_select_reset{
	background:var(--cx-panel) !important; border-color:var(--cx-line) !important;
	color:var(--cx-body) !important; border-radius:6px !important;
}
body.catx-on.cx-has-formitem #modal-building-search .b_select_reset:hover{
	border-color:var(--cx-accent) !important; color:var(--cx-accent) !important;
}
body.catx-on.cx-has-formitem #modal-building-search .modal_content{
	background:var(--cx-panel) !important; color:var(--cx-text) !important;
}
body.catx-on.cx-has-formitem #modal-building-search .select_b_list .b_info{
	background:var(--cx-panel) !important; border-color:var(--cx-line) !important;
	border-radius:8px !important; color:var(--cx-strong) !important;
}
body.catx-on.cx-has-formitem #modal-building-search .select_b_list .b_info.dropdown > .drop-toggle{
	display:flex !important; align-items:center; gap:6px; width:100%; min-width:0;
}
body.catx-on.cx-has-formitem #modal-building-search .select_b_list .b_info .drop-toggle .tt{
	order:1; min-width:0; margin-left:0 !important;
}
body.catx-on.cx-has-formitem #modal-building-search .select_b_list .b_info .drop-toggle .badge{
	order:2; flex:0 0 auto;
}
body.catx-on.cx-has-formitem #modal-building-search .select_b_list .b_info .drop-toggle .arrow{
	position:static !important; order:3; display:inline-flex; align-items:center; justify-content:center;
	flex:0 0 20px; width:20px !important; height:20px !important;
	margin:0 0 0 auto !important; padding:0 !important; border:0 !important;
	color:var(--cx-body) !important;
}
body.catx-on.cx-has-formitem #modal-building-search .select_b_list .b_info .drop-toggle .arrow i{
	margin:0 !important;
}
body.catx-on.cx-has-formitem #modal-building-search .select_b_list .b_info.dropdown li{
	border-bottom-color:var(--cx-line-soft) !important; color:var(--cx-text) !important;
}
body.catx-on.cx-has-formitem #modal-building-search .select_b_list .b_info.dropdown li:hover{
	background:var(--cx-row) !important;
}
body.catx-on.cx-has-formitem #modal-building-search .select_b_list .b_info .badge{
	background:var(--cx-row) !important; border-color:var(--cx-line) !important;
	color:var(--cx-accent) !important; border-radius:6px !important;
}
body.catx-on.cx-has-formitem #modal-building-search input[type="checkbox"]{ accent-color:var(--cx-accent); }
body.catx-on.cx-has-formitem #modal-building-search .modal_btn_box{
	background:var(--cx-panel) !important; border-top:1px solid var(--cx-line-soft) !important;
	border-radius:0 0 11px 11px !important;
}
body.catx-on.cx-has-formitem #modal-building-search .btn_b_submit{
	background:var(--cx-accent) !important; border-color:var(--cx-accent) !important;
	color:#fff !important; border-radius:7px !important; font-weight:600 !important;
	transition:background-color .16s ease, border-color .16s ease;
}
body.catx-on.cx-has-formitem #modal-building-search .btn_b_submit:hover{
	background:color-mix(in oklab, var(--cx-accent) 85%, #15233b) !important;
	border-color:color-mix(in oklab, var(--cx-accent) 85%, #15233b) !important;
}
body.catx-on.cx-has-formitem #modal-building-search .btn_b_submit:focus-visible,
body.catx-on.cx-has-formitem #modal-building-search .select_b_list input[type="checkbox"]:focus-visible{
	outline:2px solid var(--cx-accent); outline-offset:2px;
}
body.catx-on.cx-has-formitem #modal-building-search #buildingSearchLoading .load_box.ing .icon_box{
	--track:color-mix(in oklab, var(--cx-accent) 14%, var(--cx-panel));
	--bar:var(--cx-accent); color:var(--cx-accent) !important;
}
body.catx-on.cx-has-formitem #modal-building-search #buildingSearchLoading .load_box.ing .icon_box::after{
	background:var(--cx-panel) !important;
}
body.catx-on.cx-has-formitem #modal-building-search #buildingSearchLoading .arch_issued_last_txt1{
	color:var(--cx-strong) !important;
}
body.catx-on.cx-has-formitem #modal-building-search #buildingSearchLoading :is(.arch_issued_last_txt2, .arch_issued_last_txt3){
	color:var(--cx-body) !important;
}
body.catx-on.cx-has-formitem #modal-building-search #buildingSearchLoading .load_box.done{
	max-width:100%; padding:16px 18px; background:var(--cx-row) !important;
	border:1px solid var(--cx-line-soft) !important; border-radius:10px !important;
}
body.catx-on.cx-has-formitem #modal-building-search #buildingSearchLoading .load_box.done .icon_box{
	background:var(--cx-accent) !important;
	box-shadow:0 8px 20px color-mix(in oklab, var(--cx-accent) 25%, transparent) !important;
	transition:filter .16s ease, transform .16s ease;
}
body.catx-on.cx-has-formitem #modal-building-search #buildingSearchLoading .load_box.done .icon_box:hover{
	filter:brightness(.9); transform:translateY(-2px);
}
body.catx-on.cx-has-formitem #modal-building-search #buildingSearchLoading .load_box.done .arch_issued_last_txt1{
	color:var(--cx-strong) !important; font-size:16px !important; font-weight:700 !important;
}
body.catx-on.cx-has-formitem #modal-building-search #buildingSearchLoading .load_box.done .arch_issued_last_txt2{
	color:var(--cx-body) !important; font-size:13px !important; line-height:1.5 !important;
}
body.catx-on.cx-has-formitem #modal-building-search .arch_issued_pyoje_analyze_box :is(.btn_pyoje_download, .btn_pyoje_analyze){
	border-radius:7px !important; font-weight:600 !important;
	transition:background-color .16s ease, border-color .16s ease, color .16s ease !important;
}
body.catx-on.cx-has-formitem #modal-building-search .arch_issued_pyoje_analyze_box .btn_pyoje_download{
	background:var(--cx-panel) !important; border-color:var(--cx-line) !important;
	color:var(--cx-body) !important;
}
body.catx-on.cx-has-formitem #modal-building-search .arch_issued_pyoje_analyze_box .btn_pyoje_download:hover{
	background:var(--cx-hover-bg) !important; border-color:var(--cx-accent) !important;
	color:var(--cx-accent) !important;
}
body.catx-on.cx-has-formitem #modal-building-search .arch_issued_pyoje_analyze_box .btn_pyoje_analyze{
	background:var(--cx-accent) !important; border-color:var(--cx-accent) !important;
	color:#fff !important;
}
body.catx-on.cx-has-formitem #modal-building-search .arch_issued_pyoje_analyze_box .btn_pyoje_analyze:hover{
	background:color-mix(in oklab, var(--cx-accent) 85%, #15233b) !important;
	border-color:color-mix(in oklab, var(--cx-accent) 85%, #15233b) !important;
}
body.catx-on.cx-has-formitem #modal-building-search .arch_issued_pyoje_analyze_box :is(.btn_pyoje_download, .btn_pyoje_analyze):focus-visible{
	outline:2px solid var(--cx-accent); outline-offset:2px;
}

/* catx 매물등록폼: 등기부등본 검색, 확인, 진행, 완료 및 오류 모달 */
body.catx-on.cx-has-formitem #modal-dnggi_issued_func .modal_wrap_ver1{
	background:var(--cx-panel) !important; border:1px solid var(--cx-line) !important;
	border-radius:12px !important; overflow:hidden;
	box-shadow:0 18px 48px rgba(14,32,55,.22) !important;
}
body.catx-on.cx-has-formitem #modal-dnggi_issued_func .modal_title{
	background:var(--cx-panel) !important; border-bottom:1px solid var(--cx-line-soft) !important;
	border-radius:11px 11px 0 0 !important;
}
body.catx-on.cx-has-formitem #modal-dnggi_issued_func .modal_title h4{
	color:var(--cx-strong) !important; font-size:16px !important; font-weight:700 !important;
}
body.catx-on.cx-has-formitem #modal-dnggi_issued_func .modal_title .close{
	width:32px; height:32px; display:flex; align-items:center; justify-content:center;
	background:transparent !important; color:var(--cx-body) !important;
	border-radius:8px !important; opacity:1 !important;
	transition:background-color .16s ease, color .16s ease;
}
body.catx-on.cx-has-formitem #modal-dnggi_issued_func .modal_title .close i{color:inherit !important;}
body.catx-on.cx-has-formitem #modal-dnggi_issued_func .modal_title .close:hover,
body.catx-on.cx-has-formitem #modal-dnggi_issued_func .modal_title .close:focus-visible{
	background:color-mix(in oklab, var(--cx-red) 12%, var(--cx-panel)) !important;
	color:var(--cx-red) !important;
}
body.catx-on.cx-has-formitem #modal-dnggi_issued_func .btn_go_url{
	background:var(--cx-row) !important; border-color:var(--cx-line) !important;
	color:var(--cx-body) !important; border-radius:6px !important;
	transition:background-color .16s ease, border-color .16s ease, color .16s ease;
}
body.catx-on.cx-has-formitem #modal-dnggi_issued_func .btn_go_url:hover{
	background:var(--cx-hover-bg) !important; border-color:var(--cx-accent) !important;
	color:var(--cx-accent) !important;
}
body.catx-on.cx-has-formitem #modal-dnggi_issued_func .modal_content{
	background:var(--cx-panel) !important; color:var(--cx-text) !important;
}
body.catx-on.cx-has-formitem #modal-dnggi_issued_func .select_d_info{
	background:var(--cx-row) !important; color:var(--cx-strong) !important;
	border-bottom:1px solid var(--cx-line-soft) !important;
}
body.catx-on.cx-has-formitem #modal-dnggi_issued_func .select_d_info .addr i{color:var(--cx-accent) !important;}
body.catx-on.cx-has-formitem #modal-dnggi_issued_func .b_select_reset{
	background:var(--cx-panel) !important; border-color:var(--cx-line) !important;
	color:var(--cx-body) !important; border-radius:6px !important;
}
body.catx-on.cx-has-formitem #modal-dnggi_issued_func .b_select_reset:hover{
	border-color:var(--cx-accent) !important; color:var(--cx-accent) !important;
}
body.catx-on.cx-has-formitem #modal-dnggi_issued_func :is(#dnggiSearchBox, #dnggiNumSearchBox) select,
body.catx-on.cx-has-formitem #modal-dnggi_issued_func :is(#dnggiSearchBox, #dnggiNumSearchBox) .input_span input,
body.catx-on.cx-has-formitem #modal-dnggi_issued_func #dnggiAccountForm input.form-control,
body.catx-on.cx-has-formitem #modal-dnggi_issued_func .select_b_write :is(select, input.form-control){
	background:var(--cx-panel) !important; border:1px solid var(--cx-line) !important;
	color:var(--cx-text) !important; border-radius:6px !important;
	transition:border-color .16s ease, box-shadow .16s ease;
}
body.catx-on.cx-has-formitem #modal-dnggi_issued_func :is(#dnggiSearchBox, #dnggiNumSearchBox, #dnggiAccountForm, .select_b_write) :is(select, input:not([type="radio"]):not([type="checkbox"])):focus-visible{
	border-color:var(--cx-accent) !important;
	box-shadow:0 0 0 3px color-mix(in oklab, var(--cx-accent) 16%, transparent) !important;
	outline:0 !important;
}
body.catx-on.cx-has-formitem #modal-dnggi_issued_func :is(#dnggiSearchBox, #dnggiNumSearchBox) .input_span .btn{
	background:var(--cx-accent) !important; border-color:var(--cx-accent) !important;
	color:#fff !important; border-radius:0 6px 6px 0 !important;
	transition:filter .16s ease;
}
body.catx-on.cx-has-formitem #modal-dnggi_issued_func :is(#dnggiSearchBox, #dnggiNumSearchBox) .input_span .btn:hover{filter:brightness(.88);}
body.catx-on.cx-has-formitem #modal-dnggi_issued_func .dnggi_ex{
	background:var(--cx-row) !important; border:1px solid var(--cx-line-soft) !important;
	border-radius:8px !important; color:var(--cx-body) !important;
}
body.catx-on.cx-has-formitem #modal-dnggi_issued_func .dnggi_ex .ex_tt span{color:var(--cx-accent) !important;}
body.catx-on.cx-has-formitem #modal-dnggi_issued_func input:is([type="radio"], [type="checkbox"]){accent-color:var(--cx-accent);}
body.catx-on.cx-has-formitem #modal-dnggi_issued_func .modal_box{
	background:var(--cx-row) !important; border-color:var(--cx-line) !important;
	color:var(--cx-text) !important; border-radius:8px !important;
}
body.catx-on.cx-has-formitem #modal-dnggi_issued_func .modal_box:hover{
	background:var(--cx-hover-bg) !important; border-color:var(--cx-accent) !important;
}
body.catx-on.cx-has-formitem #modal-dnggi_issued_func .modal_box .customer_info_boxs_L{color:var(--cx-text) !important;}
body.catx-on.cx-has-formitem #modal-dnggi_issued_func .modal_box .customer_info_boxs_R span{
	background:var(--cx-panel) !important; border-color:var(--cx-line) !important; color:var(--cx-body) !important;
}
body.catx-on.cx-has-formitem #modal-dnggi_issued_func .modal_box .customer_info_boxs_R span:hover{
	background:var(--cx-accent) !important; border-color:var(--cx-accent) !important; color:#fff !important;
}
body.catx-on.cx-has-formitem #modal-dnggi_issued_func #dnggiResult th{
	background:var(--cx-row) !important; color:var(--cx-strong) !important;
	border-bottom:1px solid var(--cx-line) !important;
}
body.catx-on.cx-has-formitem #modal-dnggi_issued_func #dnggi_search_body td{
	border-bottom-color:var(--cx-line-soft) !important; color:var(--cx-text) !important;
}
body.catx-on.cx-has-formitem #modal-dnggi_issued_func #dnggi_search_body .b_select_btn{
	background:var(--cx-panel) !important; border-color:var(--cx-line) !important;
	color:var(--cx-body) !important; border-radius:6px !important;
	transition:background-color .16s ease, border-color .16s ease, color .16s ease;
}
body.catx-on.cx-has-formitem #modal-dnggi_issued_func #dnggi_search_body .b_select_btn:hover{
	background:var(--cx-accent) !important; border-color:var(--cx-accent) !important; color:#fff !important;
}
body.catx-on.cx-has-formitem #modal-dnggi_issued_func :is(.select_d_infoAddr, .select_d_infoAddrLast, .select_b_list .dnggi_issued_info){
	background:var(--cx-row) !important; border-color:var(--cx-line) !important;
	border-radius:8px !important; color:var(--cx-text) !important;
}
body.catx-on.cx-has-formitem #modal-dnggi_issued_func :is(.select_b_alert, .select_b_issue) .modal_title_hdtt{
	color:var(--cx-strong) !important; font-weight:700 !important;
}
body.catx-on.cx-has-formitem #modal-dnggi_issued_func :is(.select_b_alert, .select_b_issue) .modal_title_sbtt{color:var(--cx-body) !important; line-height:1.5 !important;}
body.catx-on.cx-has-formitem #modal-dnggi_issued_func .modal_btn :is(.go_prev, .go_next),
body.catx-on.cx-has-formitem #modal-dnggi_issued_func .btn_b_submit,
body.catx-on.cx-has-formitem #modal-dnggi_issued_func #dnggiAccountForm button{
	border-radius:7px !important; font-weight:600 !important;
	transition:filter .16s ease, box-shadow .16s ease !important;
}
body.catx-on.cx-has-formitem #modal-dnggi_issued_func .modal_btn .go_prev{
	background:var(--cx-row) !important; border-color:var(--cx-line) !important; color:var(--cx-body) !important;
}
body.catx-on.cx-has-formitem #modal-dnggi_issued_func .modal_btn .go_next:not(.red),
body.catx-on.cx-has-formitem #modal-dnggi_issued_func .btn_b_submit{
	background:var(--cx-accent) !important; border-color:var(--cx-accent) !important; color:#fff !important;
}
body.catx-on.cx-has-formitem #modal-dnggi_issued_func .modal_btn .go_next.red,
body.catx-on.cx-has-formitem #modal-dnggi_issued_func #dnggiAccountForm button{
	background:var(--cx-red) !important; border-color:var(--cx-red) !important; color:#fff !important;
}
body.catx-on.cx-has-formitem #modal-dnggi_issued_func .modal_btn :is(.go_prev, .go_next):hover,
body.catx-on.cx-has-formitem #modal-dnggi_issued_func :is(.btn_b_submit, #dnggiAccountForm button):hover{filter:brightness(.9);}
body.catx-on.cx-has-formitem #modal-dnggi_issued_func .modal_btn :is(.go_prev, .go_next):focus-visible,
body.catx-on.cx-has-formitem #modal-dnggi_issued_func :is(.btn_b_submit, #dnggiAccountForm button, .modal_title .close):focus-visible{
	outline:2px solid var(--cx-accent); outline-offset:2px;
}
body.catx-on.cx-has-formitem #modal-dnggi_issued_func #dnggiSearchLoading .load_box,
body.catx-on.cx-has-formitem #modal-dnggi_issued_func :is(#dnggiSearchAdrWait, #dnggiSearchWait) .load_boxw{
	max-width:100%; padding:18px; background:var(--cx-row) !important;
	border:1px solid var(--cx-line-soft) !important; border-radius:10px !important;
}
body.catx-on.cx-has-formitem #modal-dnggi_issued_func #dnggiSearchLoading .load_box.ing .icon_box{
	--track:color-mix(in oklab, var(--cx-accent) 14%, var(--cx-panel));
	--bar:var(--cx-accent); color:var(--cx-accent) !important;
}
body.catx-on.cx-has-formitem #modal-dnggi_issued_func #dnggiSearchLoading .load_box.ing .icon_box::after{background:var(--cx-row) !important;}
body.catx-on.cx-has-formitem #modal-dnggi_issued_func #dnggiSearchLoading .load_box.done .icon_box{
	background:var(--cx-accent) !important;
	box-shadow:0 8px 20px color-mix(in oklab, var(--cx-accent) 24%, transparent) !important;
}
body.catx-on.cx-has-formitem #modal-dnggi_issued_func #dnggiSearchLoading .load_box.warning .icon_box{
	background:color-mix(in oklab, var(--cx-red) 12%, var(--cx-panel)) !important;
}
body.catx-on.cx-has-formitem #modal-dnggi_issued_func #dnggiSearchLoading .load_box.warning .icon_box::before{color:var(--cx-red) !important;}
body.catx-on.cx-has-formitem #modal-dnggi_issued_func #dnggiSearchLoading :is(.dnggi_issued_last_txt1, .dnggi_issued_last_txt1 span){
	color:var(--cx-strong) !important; font-size:16px !important; font-weight:700 !important;
}
body.catx-on.cx-has-formitem #modal-dnggi_issued_func #dnggiSearchLoading :is(.dnggi_issued_last_txt2, .dnggi_issued_last_txt3){color:var(--cx-body) !important; line-height:1.5 !important;}
body.catx-on.cx-has-formitem #modal-dnggi_issued_func :is(#dnggiSearchEmpty, #dnggiSearchWarning, #dnggiAccountForm){color:var(--cx-body) !important;}
body.catx-on.cx-has-formitem #modal-dnggi_issued_func :is(#dnggiSearchEmpty, #dnggiSearchWarning, #dnggiAccountForm) .ex_tt.icons span,
body.catx-on.cx-has-formitem #modal-dnggi_issued_func :is(#dnggiSearchWarning, #dnggiAccountForm) .ex_tt span{
	background:color-mix(in oklab, var(--cx-red) 12%, var(--cx-panel)) !important;
	color:var(--cx-red) !important;
}
body.catx-on.cx-has-formitem #modal-dnggi_issued_func :is(#dnggiSearchEmpty, #dnggiSearchWarning, #dnggiAccountForm) .ex_tt i{color:var(--cx-red) !important;}
body.catx-on.cx-has-formitem #modal-dnggi_issued_func :is(#dnggiSearchEmpty, #dnggiSearchWarning, #dnggiAccountForm) .ex_sub > span{
	color:var(--cx-strong) !important; font-size:16px !important; font-weight:700 !important;
}
body.catx-on.cx-has-formitem #modal-dnggi_issued_func :is(#dnggiSearchEmpty, #dnggiSearchWarning, #dnggiAccountForm) .ex_sub2 span{color:var(--cx-body) !important; line-height:1.5 !important;}
body.catx-on.cx-has-formitem #modal-dnggi_issued_func :is(#dnggiSearchWarning, #dnggiAccountForm) .reason{color:var(--cx-red) !important;}
body.catx-on.cx-has-formitem #modal-dnggi_issued_func :is(#dnggiSearchWarning, #dnggiAccountForm) .btn_go_url2{
	background:var(--cx-row) !important; border-color:var(--cx-line) !important;
	color:var(--cx-body) !important; border-radius:7px !important;
	transition:background-color .16s ease, border-color .16s ease, color .16s ease;
}
body.catx-on.cx-has-formitem #modal-dnggi_issued_func :is(#dnggiSearchWarning, #dnggiAccountForm) .btn_go_url2:hover{
	background:var(--cx-hover-bg) !important; border-color:var(--cx-accent) !important; color:var(--cx-accent) !important;
}
body.catx-on.cx-has-formitem #modal-dnggiso_login .modal-dialog,
body.catx-on.cx-has-formitem #modal-dnggiso_login .modal_wrap_ver1{
	background:var(--cx-panel) !important; border-radius:12px !important;
}
body.catx-on.cx-has-formitem #modal-dnggiso_login .modal-dialog{
	border:1px solid var(--cx-line) !important; box-shadow:0 18px 48px rgba(14,32,55,.22) !important;
}
body.catx-on.cx-has-formitem #modal-dnggiso_login .modal_content{
	background:var(--cx-panel) !important; color:var(--cx-text) !important; border-radius:12px !important;
}
body.catx-on.cx-has-formitem #modal-dnggiso_login .modal_icon i,
body.catx-on.cx-has-formitem #modal-dnggiso_login .modal_title_hdtt{color:var(--cx-accent) !important;}
body.catx-on.cx-has-formitem #modal-dnggiso_login .modal_title_sbtt{color:var(--cx-body) !important; line-height:1.5 !important;}
body.catx-on.cx-has-formitem #modal-dnggiso_login .modal_sign_box input{
	background:var(--cx-panel) !important; border-color:var(--cx-line) !important;
	color:var(--cx-text) !important; border-radius:6px !important;
}
body.catx-on.cx-has-formitem #modal-dnggiso_login .modal_sign_box input:focus-visible{
	border-color:var(--cx-accent) !important;
	box-shadow:0 0 0 3px color-mix(in oklab, var(--cx-accent) 16%, transparent) !important;
}
body.catx-on.cx-has-formitem #modal-dnggiso_login :is(.modal_sign_box button, .eais_signgo){
	background:var(--cx-accent) !important; border-color:var(--cx-accent) !important;
	color:#fff !important; border-radius:7px !important;
}
body.catx-on.cx-has-formitem #modal-dnggiso_login .go_platform{
	background:var(--cx-row) !important; border-color:var(--cx-line) !important;
	color:var(--cx-body) !important; border-radius:7px !important;
}
body.catx-on.cx-has-formitem #modal-dnggiso_login :is(.modal_sign_box button, .eais_signgo, .go_platform):hover{filter:brightness(.9);}
body.catx-on.cx-has-formitem #modal-dnggiso_login .modal_title .close:hover{
	background:color-mix(in oklab, var(--cx-red) 12%, var(--cx-panel)) !important;
	color:var(--cx-red) !important;
}

/* catx 발급 이력: 건축물대장과 등기부등본 목록의 공통 화면 */
.cx-issued-history .cx-issued-heading{display:none;}
body.catx-on .cx-issued-history{
	color:var(--cx-text); padding:0 10px 10px !important;
}
body.catx-on .cx-issued-history > .container-fluid{
	max-width:none; width:100%; padding:0;
}
body.catx-on .cx-issued-history .cx-issued-heading{
	display:block; margin:0 -10px 12px; padding:14px 18px;
	background:#fff; border-bottom:1px solid #e8edf3;
}
body.catx-on .cx-issued-history .cx-issued-heading > span{
	display:none;
}
body.catx-on .cx-issued-history .cx-issued-heading h1{
	margin:0; color:#172033; font-family:'NotoSansKR-Bold';
	font-size:22px; font-weight:normal; line-height:1.35;
}
body.catx-on .cx-issued-history .cx-issued-heading p{
	margin:3px 0 0; color:#718096; font-size:13px; line-height:1.5;
}
body.catx-on .cx-issued-history .top_fixed{
	background:var(--cx-panel) !important; border:1px solid var(--cx-line) !important;
	border-radius:12px !important; padding:14px 16px !important;
	box-shadow:0 5px 18px rgba(12,30,55,.08);
}
body.catx-on .cx-issued-history .top_fixed .form-inline > form{
	display:flex; flex-wrap:wrap; align-items:center; gap:12px; width:100%;
}
body.catx-on .cx-issued-history .top_fixed .badge.main_color{
	float:none !important; flex:0 0 auto; width:auto !important; max-width:none !important;
	margin:0 !important; padding:6px 12px !important; height:36px !important;
	background:var(--cx-row) !important; border:1px solid var(--cx-line) !important;
	border-radius:8px !important; color:var(--cx-strong) !important;
	font-size:14px; line-height:22px !important;
}
body.catx-on .cx-issued-history .top_fixed .input-group{
	float:none !important; flex:1 1 420px; min-width:0; width:auto !important;
	display:flex !important; align-items:stretch; gap:8px; margin:0 !important;
}
body.catx-on .cx-issued-history .top_fixed .input-group > input.form-control{
	float:none !important; flex:1 1 auto; min-width:0; width:100% !important; height:36px !important;
	background:var(--cx-panel) !important; border:1px solid var(--cx-line) !important;
	border-radius:7px !important; color:var(--cx-text) !important;
	box-shadow:none !important;
}
body.catx-on .cx-issued-history .top_fixed .input-group > input.form-control:focus{
	border-color:var(--cx-accent) !important;
	box-shadow:0 0 0 3px color-mix(in oklab, var(--cx-accent) 16%, transparent) !important;
}
body.catx-on .cx-issued-history .top_fixed .input-group-btn{
	flex:0 0 auto; width:auto !important; display:flex; margin:0 !important;
}
body.catx-on .cx-issued-history .top_fixed .input-group-btn .btn{
	width:38px; height:36px; padding:0 !important; border-radius:7px !important;
	background:var(--cx-row) !important; border:1px solid var(--cx-line) !important;
	color:var(--cx-body) !important;
}
body.catx-on .cx-issued-history .top_fixed .arch_issued_btn{
	float:none !important; flex:0 0 auto; width:auto !important; height:36px !important;
	margin:0 !important; padding:0 14px !important; line-height:34px !important;
	background:var(--cx-accent) !important; border:1px solid var(--cx-accent) !important;
	border-radius:7px !important; color:#fff !important; font-weight:600;
	transition:filter .16s ease, transform .16s ease;
}
body.catx-on .cx-issued-history .top_fixed .arch_issued_btn :is(span, i){color:inherit !important;}
body.catx-on .cx-issued-history .top_fixed :is(.arch_issued_btn, .input-group-btn .btn):hover{
	filter:brightness(.9); transform:translateY(-1px);
}
body.catx-on .cx-issued-history .top_fixed :is(.arch_issued_btn, .input-group-btn .btn):focus-visible{
	outline:2px solid var(--cx-accent); outline-offset:2px;
}
body.catx-on .cx-issued-history .table-responsive{
	background:var(--cx-panel) !important; border:1px solid var(--cx-line) !important;
	border-radius:12px !important; margin-top:12px !important;
	box-shadow:0 5px 18px rgba(12,30,55,.08);
}
body.catx-on .cx-issued-history .table_top_wrap{
	padding:0 !important; overflow-x:auto;
}
body.catx-on .cx-issued-history .table_pc{
	width:100%; margin:0; border:0 !important; box-shadow:none !important;
}
body.catx-on .cx-issued-history .table_pc thead{
	background:var(--cx-row) !important;
}
body.catx-on .cx-issued-history .table_pc thead th{
	background:var(--cx-row) !important; border:0 !important;
	border-bottom:1px solid var(--cx-line) !important;
	color:var(--cx-strong) !important; font-weight:700 !important;
	padding:13px 10px !important;
}
body.catx-on .cx-issued-history .table_pc tbody tr{
	background:var(--cx-panel) !important; transition:background-color .16s ease;
}
body.catx-on .cx-issued-history .table_pc tbody tr:hover{background:var(--cx-row) !important;}
body.catx-on .cx-issued-history .table_pc tbody td{
	border-top:0 !important; border-bottom:1px solid var(--cx-line-soft) !important;
	color:var(--cx-text) !important; padding:12px 10px !important; vertical-align:middle;
}
body.catx-on .cx-issued-history .table_pc .issued-date{
	white-space:nowrap; word-break:normal;
}
body.catx-on .cx-issued-history .table_pc .no_list_box,
body.catx-on .cx-issued-history .mobile_no_list{
	color:var(--cx-sub) !important; text-align:center; padding:28px 12px !important;
}
body.catx-on .cx-issued-history .select_btn_wrap{gap:5px;}
body.catx-on .cx-issued-history :is(.select_btn, .select_btn_del){
	display:inline-flex !important; align-items:center; justify-content:center; gap:5px;
	width:auto !important; min-height:30px; height:auto !important; margin:0 !important;
	padding:5px 9px !important; border-radius:7px !important;
	font-size:var(--dash-font-12, 12px) !important; font-weight:600 !important; line-height:1.3 !important;
	transition:background-color .16s ease, border-color .16s ease, color .16s ease;
}
body.catx-on .cx-issued-history .select_btn{
	background:var(--cx-row) !important; border:1px solid var(--cx-accent) !important;
	color:var(--cx-accent) !important;
}
body.catx-on .cx-issued-history .select_btn_del{
	background:color-mix(in oklab, var(--cx-red) 9%, var(--cx-panel)) !important;
	border:1px solid var(--cx-red) !important; color:var(--cx-red) !important;
}
body.catx-on .cx-issued-history :is(.select_btn, .select_btn_del) i{color:inherit !important; margin:0 !important;}
body.catx-on .cx-issued-history .select_btn:hover{
	background:var(--cx-accent) !important; color:#fff !important;
}
body.catx-on .cx-issued-history .select_btn_del:hover{
	background:var(--cx-red) !important; color:#fff !important;
}
body.catx-on .cx-issued-history :is(.select_btn, .select_btn_del):focus-visible{
	outline:2px solid var(--cx-accent); outline-offset:2px;
}
body.catx-on .cx-issued-history :is(.status-progress, .status-waiting){
	display:inline-flex; align-items:center; gap:5px; padding:5px 9px;
	border-radius:7px; font-size:var(--dash-font-12, 12px); font-weight:600; line-height:1.3;
}
body.catx-on .cx-issued-history .status-progress{
	background:color-mix(in oklab, var(--cx-accent) 12%, var(--cx-panel)); color:var(--cx-accent);
}
body.catx-on .cx-issued-history .status-waiting{
	background:color-mix(in oklab, var(--cx-amber) 13%, var(--cx-panel)); color:var(--cx-amber);
}
body.catx-on .cx-issued-history .issued-history-failed{
	display:inline-block; max-width:100%; padding:5px 9px;
	background:color-mix(in oklab, var(--cx-red) 11%, var(--cx-panel));
	border-radius:7px; color:var(--cx-red) !important;
	font-size:var(--dash-font-12, 12px); font-weight:600; line-height:1.4; text-align:center;
}
body.catx-on .cx-issued-history .analyze_pagination{
	display:flex; flex-wrap:wrap; justify-content:center; gap:3px; margin:12px 0 !important;
}
body.catx-on .cx-issued-history .analyze_pagination > li > a{
	color:var(--cx-body) !important; border-radius:6px !important;
}
body.catx-on .cx-issued-history .analyze_pagination > li > a:hover{
	background:var(--cx-row) !important; color:var(--cx-accent) !important;
}
body.catx-on .cx-issued-history .analyze_pagination > .active > a{color:var(--cx-accent) !important; font-weight:700;}
@media (max-width:992px){
	body.catx-on .cx-issued-history{padding:0 12px 10px !important;}
	body.catx-on .cx-issued-history > .container-fluid{
		display:flex; flex-direction:column; min-height:0; height:100% !important;
		padding:0 !important;
	}
	body.catx-on .cx-issued-history .cx-issued-heading{
		margin:0 -12px 10px; padding:12px 12px 10px;
	}
	body.catx-on .cx-issued-history .cx-issued-heading h1{font-size:19px;}
	body.catx-on .cx-issued-history .cx-issued-heading p{font-size:var(--dash-font-12, 12px);}
	body.catx-on .cx-issued-history .top_fixed{position:static !important; padding:12px !important;}
	body.catx-on .cx-issued-history .top_fixed .form-inline > form{gap:10px;}
	body.catx-on .cx-issued-history .top_fixed .badge.main_color{flex:1 1 100%;}
	body.catx-on .cx-issued-history .top_fixed .input-group{
		flex:1 1 100%; flex-wrap:wrap; gap:7px;
	}
	body.catx-on .cx-issued-history .top_fixed .input-group > input.form-control{
		flex:1 1 calc(100% - 46px); width:calc(100% - 46px) !important;
	}
	body.catx-on .cx-issued-history .top_fixed .input-group-btn{flex:0 0 38px;}
	body.catx-on .cx-issued-history .top_fixed .arch_issued_btn{
		flex:1 1 100%; text-align:center;
	}
	body.catx-on .cx-issued-history .table-responsive{
		display:flex; flex-direction:column; flex:1 1 auto; min-height:0;
		width:100%; height:auto !important; overflow:hidden !important;
	}
	body.catx-on .cx-issued-history #list_box{
		flex:1 1 auto; min-height:0; height:auto !important; overflow:hidden;
	}
	body.catx-on .cx-issued-history .table_top_wrap{
		height:100% !important; padding:12px !important;
		overflow-y:auto !important; overflow-x:hidden !important;
	}
	body.catx-on .cx-issued-history .table_mobile{
		display:block !important; width:100% !important; margin:0 !important;
	}
	body.catx-on .cx-issued-history .table_mobile .table_tr{
		background:var(--cx-row) !important; border:1px solid var(--cx-line) !important;
		border-radius:9px !important; overflow:hidden; margin-bottom:10px !important;
		box-shadow:0 2px 8px rgba(12,30,55,.05);
	}
	body.catx-on .cx-issued-history .table_mobile .table_td_top{
		padding:12px !important; border-bottom:1px solid var(--cx-line-soft) !important;
	}
	body.catx-on .cx-issued-history .table_mobile .table_td_top > div{
		display:flex; flex-wrap:wrap; align-items:baseline; gap:5px 8px;
		height:auto !important; line-height:1.4 !important;
	}
	body.catx-on .cx-issued-history .table_mobile .table_td_top .addr{
		flex:1 1 100%; min-width:0; color:var(--cx-strong) !important;
		font-size:14px; line-height:1.45; overflow-wrap:anywhere;
	}
	body.catx-on .cx-issued-history .table_mobile .table_td_top :is(.history-seq, .item_id, .gubun){
		color:var(--cx-sub) !important; font-size:var(--dash-font-12, 12px);
	}
	body.catx-on .cx-issued-history .table_mobile .table_td_btm{
		display:flex !important; flex-wrap:wrap; align-items:center; justify-content:flex-start;
		gap:8px; padding:11px 12px !important; color:var(--cx-body) !important;
		line-height:1.4 !important;
	}
	body.catx-on .cx-issued-history .table_mobile .table_td_btm > span:not(.issued-history-failed){
		flex:1 1 100%; width:auto !important; color:var(--cx-body) !important;
	}
	body.catx-on .cx-issued-history .table_mobile .table_td_btm > .select_btn,
	body.catx-on .cx-issued-history .table_mobile .table_td_btm > .select_btn_del{
		flex:1 1 auto; min-width:100px;
	}
	body.catx-on .cx-issued-history .table_mobile .table_tr:hover{
		border-color:var(--cx-accent) !important;
	}
	body.catx-on .cx-issued-history .analyze_pagination{padding:8px !important;}
}

/* 디자인 설정 페이지의 다섯 섹션 제목을 같은 서체 크기와 굵기로 표시 */
html body.catx-on #admin_wrap .settings-page #form_design_update h4.box_title{
	font-size:20px !important; font-weight:700 !important; line-height:26px !important;
}
html body.catx-on #admin_wrap .settings-page #form_design_update .box_contents>table>thead>tr>th.settings-section-heading{
	position:relative !important; padding:14px 250px 14px 16px !important;
	font-size:18px !important; font-weight:700 !important; line-height:26px !important;
}
html body.catx-on #admin_wrap .settings-page #form_design_update .settings-section-title{
	display:block; min-width:0; color:inherit !important;
	font-size:inherit !important; font-weight:inherit !important; line-height:inherit !important;
}
html body.catx-on #admin_wrap .settings-page #form_design_update .settings-section-actions{
	position:absolute !important; top:50%; right:12px; transform:translateY(-50%) !important;
	display:inline-flex; align-items:center; justify-content:flex-end; gap:7px;
}
html body.catx-on #admin_wrap .settings-page #form_design_update .settings-section-actions .guide_check_btn{
	position:static !important; top:auto !important; right:auto !important;
	transform:none !important;
}
/* SNS/SEO 설정의 외곽 section은 기존 float:left가 남아 중앙 정렬을 막는다. */
html body.catx-on #admin_wrap .settings-page.sns-seo-settings-page{
	display:block !important; float:none !important;
	width:calc(100% - 36px) !important; max-width:1356px !important;
	margin:18px auto !important; box-sizing:border-box;
	box-shadow:none !important;
}
@media (max-width:767px){
	html body.catx-on #admin_wrap .settings-page.sns-seo-settings-page{
		width:calc(100% - 16px) !important; margin:8px auto !important;
	}
	html body.catx-on #admin_wrap .settings-page #form_design_update h4.box_title{
		font-size:18px !important; font-weight:700 !important;
	}
	html body.catx-on #admin_wrap .settings-page #form_design_update .box_contents>table>thead>tr>th.settings-section-heading{
		padding:12px !important; min-height:0 !important;
		font-size:16px !important; line-height:24px !important;
	}
	html body.catx-on #admin_wrap .settings-page #form_design_update .settings-section-actions{
		position:static !important; transform:none !important;
		justify-content:flex-start; flex-wrap:wrap; margin-top:8px;
	}
}

/* 매물목록 매물종류 칸: 이름이 길어도 칸이 가로로 늘어나지 않게 100px 로 묶고 줄바꿈.
 * 표가 table-layout:auto 라 td 에 max-width 를 줘도 무시되므로 안쪽 박스 폭을 고정한다.
 * (이 파일은 text/css 로 서빙된다 — <style> 태그를 넣으면 CSS 파서가
 *  "<style> 셀렉터{...}" 을 잘못된 규칙으로 보고 통째로 버리니 주의) */
body.catx-on .list_table_pc_zone .thema_type_box{
	box-sizing:border-box !important;
	width:100px !important; max-width:100px !important; min-width:0 !important;
	white-space:normal !important; overflow-wrap:anywhere; word-break:normal;
}
body.catx-on .list_table_pc_zone .thema_type_box > div,
body.catx-on .list_table_pc_zone .thema_type_box .ellipsis{
	display:block !important; max-width:100% !important;
	white-space:normal !important; overflow:visible !important; text-overflow:clip !important;
}

@media (min-width:769px){
	body.catx-on.catx-list-normal .list_table_pc_zone .item_price_change_text{
		font-weight:400;
	}
}

/* 매물 금액 변동내역: hover 미리보기 + click 고정 패널 */
/* [변동 배지] 아이콘을 인라인 SVG 로 바꿨다(폰트어썸 제거) — 크기·정렬을 여기서 잡는다.
 * '변동' 문구의 굵기는 빼고(기본 두께), PC·모바일 공통 적용. */
/* [변동 배지] 아래 액션 버튼(.cxmab-btn = 계약/수정 등)과 테두리·문구를 통일한다.
 * 테두리 var(--cx-line2) / radius 6px / 문구 var(--cx-body) 500.
 * 화살표만 상승(빨강)·하락(파랑)을 유지해야 하므로, 컨테이너 color 대신
 * SVG 에 직접 색을 준다(SVG 는 stroke:currentColor). */
body.catx-on .item_price_change{
	border:1px solid var(--cx-line2) !important; border-radius:6px !important;
	color:var(--cx-body) !important; font-weight:500 !important; }
body.catx-on .item_price_change .item_price_change_text{
	/* .price_type_box 가 font-family:'NotoSansKR-Bold' (굵기 전용 웹폰트)라 안쪽 글자가
	 * font-weight 와 무관하게 굵게 나온다(admin_item_v2.php:2755) → 일반 폰트로 되돌린다. */
	font-family:"Apple SD Gothic Neo", NotoSansKR, "apple gothic", "맑은 고딕", sans-serif !important;
	color:var(--cx-body) !important; font-weight:500 !important; }
body.catx-on .item_price_change.item_price_change_up   > svg.item_price_change_ico{ color:#ff4d4f; }
body.catx-on .item_price_change.item_price_change_down > svg.item_price_change_ico{ color:#2f80ed; }
/* PC 에서만 금액과 '변동' 배지 사이 간격 축소(기본 margin-left:4px → 2px).
 * 모바일은 별도 규칙(3px)이 있어 영향 없다. */
@media (min-width:993px){
	body.catx-on .price_type_box .item_price_change{ margin-left:2px !important; }
}
body.catx-on .item_price_change > svg.item_price_change_ico{ width:10px; height:10px; flex:0 0 auto; display:block; }
body.catx-on .item_price_change .item_price_change_text{ font-weight:400 !important; }
body.catx-on .tooltip:has(.item_price_change_timeline){ z-index:1070 !important; filter:none; pointer-events:auto; }
body.catx-on .tooltip.in:has(.item_price_change_timeline){ opacity:1; }
body.catx-on .tooltip .tooltip-inner:has(.item_price_change_timeline){
	width:320px; max-width:min(320px, calc(100vw - 24px)); padding:0; overflow:hidden;
	background:#fff; border:1px solid #e4e8ef; border-radius:12px; color:#20242c;
	box-shadow:0 10px 28px rgba(31,42,61,.16);
}
body.catx-on .tooltip.top:has(.item_price_change_timeline) .tooltip-arrow{ border-top-color:#e4e8ef; }
body.catx-on .tooltip.bs-tooltip-top:has(.item_price_change_timeline) .arrow::before{ border-top-color:#e4e8ef; }
body.catx-on .item_price_change_tooltip_header{
	display:flex; align-items:center; justify-content:space-between; height:46px; padding:0 16px;
	border-bottom:1px solid #edf0f4; background:#fff; text-align:left;
}
body.catx-on .item_price_change_tooltip_header strong{
	font-size:16px; font-weight:800; letter-spacing:-.04em; color:#171a20;
}
body.catx-on .item_price_change_tooltip_close{
	position:static; display:inline-flex; align-items:center; justify-content:center;
	width:24px; height:24px; padding:0; border:0; border-radius:6px; background:transparent;
	color:#252a32; font-size:23px; font-weight:300; line-height:1; cursor:pointer;
}
body.catx-on .item_price_change_tooltip_close:hover{ background:#f2f4f7; }
body.catx-on .item_price_change_tooltip{
	max-height:none; overflow:visible; font-size:13px; line-height:1.35; white-space:normal;
}
body.catx-on .item_price_change_timeline{
	max-height:250px; padding:5px 16px 7px; overflow-y:auto;
}
body.catx-on .item_price_change_timeline_row{
	position:relative; display:grid; grid-template-columns:10px 72px minmax(0,1fr);
	align-items:start; column-gap:9px; min-height:52px; padding:13px 0 11px; color:#626975;
}
body.catx-on .item_price_change_timeline_row:not(:last-child)::after{
	content:""; position:absolute; left:4px; top:24px; bottom:-13px;
	width:1px; background:#dce1e8;
}
body.catx-on .item_price_change_timeline_dot{
	position:relative; z-index:1; width:8px; height:8px; margin-top:4px;
	border:1.5px solid #b8c0cb; border-radius:50%; background:#fff;
}
body.catx-on .item_price_change_timeline_latest .item_price_change_timeline_dot{
	border-color:#303741; background:#303741; box-shadow:0 0 0 3px #fff;
}
body.catx-on .item_price_change_tooltip_date,
body.catx-on .item_price_change_first_badge{
	margin:0; color:#68707c; font-size:13px; line-height:17px;
}
body.catx-on .item_price_change_timeline_latest .item_price_change_tooltip_date{
	color:#252a32; font-weight:700;
}
body.catx-on .item_price_change_first_badge{
	display:inline-flex; width:max-content; padding:1px 5px; border:1px solid #d8dde5;
	border-radius:4px; background:#fafbfc; font-size:var(--dash-font-11, 11px); line-height:15px;
}
body.catx-on .item_price_change_timeline_price{
	min-width:0; text-align:right; color:#4a515c; font-size:13px; line-height:17px;
}
body.catx-on .item_price_change_timeline_latest .item_price_change_timeline_price{
	color:#20242c; font-weight:700;
}
body.catx-on .item_price_change_tooltip_label{
	margin-right:3px; color:#8a929e; font-size:var(--dash-font-11, 11px); font-weight:400;
}
body.catx-on .item_price_change_price_divider{
	display:inline-block; margin:0 5px; color:#c2c7cf;
}
body.catx-on .item_price_change_direction{ margin-left:2px; font-size:15px; font-weight:800; }
body.catx-on .item_price_change_tooltip_up{ color:#f04452; font-weight:700; }
body.catx-on .item_price_change_tooltip_down{ color:#2583f7; font-weight:700; }
body.catx-on .item_price_change_first{ margin:0; border-top:1px solid #f0f2f5; }
body.catx-on .item_price_change_first_price{ color:#555d68; font-weight:400; }

@media (max-width:768px){
	body.catx-on .tooltip .tooltip-inner:has(.item_price_change_timeline){ width:calc(100vw - 24px); }
	body.catx-on .item_price_change_tooltip_header{ height:44px; padding:0 14px; }
	body.catx-on .item_price_change_tooltip_header strong{ font-size:16px; }
	body.catx-on .item_price_change_timeline{ padding-right:14px; padding-left:14px; }
}

/* [모바일] 가격 변동내역 패널을 화면 정중앙에 띄운다.
 * 부트스트랩 tooltip 이 placement:"top" 이라 배지 바로 위에 붙는데,
 * 모바일 카드 목록에서는 카드 사이에 끼어 잘리거나 다른 카드를 가린다.
 * 계산된 top/left 를 덮어쓰고 화살표를 숨겨 모달처럼 보이게 한다.
 * (카드형 목록이 992px 까지 렌더되므로 범위도 992 로 맞춘다) */
@media (max-width:992px){
	body.catx-on .tooltip:has(.item_price_change_timeline){
		position:fixed !important; top:50% !important; left:50% !important;
		right:auto !important; bottom:auto !important; margin:0 !important;
		transform:translate(-50%,-50%) !important; z-index:30200 !important; }
	body.catx-on .tooltip:has(.item_price_change_timeline) .tooltip-arrow,
	body.catx-on .tooltip:has(.item_price_change_timeline) .arrow{ display:none !important; }
	body.catx-on .tooltip .tooltip-inner:has(.item_price_change_timeline){
		width:min(calc(100vw - 32px), 380px) !important; max-width:none !important;
		max-height:70vh !important; overflow-y:auto !important;
		box-shadow:0 12px 32px rgba(15,23,42,.24) !important; }
}

/* ── 고객 목록(type=owner / type2=owner): 페이지 바탕을 대시보드와 동일하게 ──────────
 * admin_member.php 인라인 스타일이 #searchConsoleTop / .section_whole 배경을 #f6f8fb
 * 로 고정해 두어, 대시보드 바탕(body.catx-on #admin_wrap = var(--cx-page-solid))보다
 * 밝은 회색으로 떴다. catx 에서만 같은 토큰으로 맞춘다(일반형·모노톤 무영향).
 * 화면 한정: 고객 구분 탭(.owner-page-tabs)이 있는 목록만 — 다른 회원 목록은 그대로. */
body.catx-on #admin_wrap .admin_main_wrap:has(.owner-page-tabs),
body.catx-on #admin_wrap .admin_main_wrap:has(.owner-page-tabs) #searchConsoleTop,
body.catx-on #admin_wrap .admin_main_wrap:has(.owner-page-tabs) .section_whole{
	background:var(--cx-page-solid) !important;
}
/* 목록 상단 '10개씩보기'(.select_box_offset)는 배경이 없어 위 바탕색이 그대로 비쳤다.
 * 옆의 '수정일순'(.custom_select)과 같이 흰 박스로 보이게 배경을 채운다. */
body.catx-on #admin_wrap .admin_main_wrap:has(.owner-page-tabs) .top_fixed .select_box_offset{
	background-color:#fff !important;
	/* 배경은 래퍼가 깔다 — select 에 주면 z-index:1 인 select 이 절대위치 화살표를 가린다 */
	border-radius:7px !important;
}

/* 고객 목록의 파란 포인트(#0557fe 하드코딩)를 catx 강조색(--cx-accent)으로 통일.
 * 대상: 고객 구분 탭 / 전체 고객 배지 / 검색 버튼(목록·필터) / 고객등록 버튼. */
body.catx-on #admin_wrap .admin_main_wrap:has(.owner-page-tabs) .owner-page-tabs a.is-active,
body.catx-on #admin_wrap .admin_main_wrap:has(.owner-page-tabs) .top_fixed .badge_whole_num,
body.catx-on #admin_wrap .admin_main_wrap:has(.owner-page-tabs) .top_fixed .badge_whole_num:hover,
body.catx-on #admin_wrap .admin_main_wrap:has(.owner-page-tabs) .top_fixed .search_input .input-group-btn > .btn,
body.catx-on #admin_wrap .admin_main_wrap:has(.owner-page-tabs) .top_fixed .btn_member_add,
body.catx-on #admin_wrap .admin_main_wrap:has(.owner-page-tabs) #searchConsoleTop .admin_item_right_box .btn_search{
	background:var(--cx-accent) !important;
	border-color:var(--cx-accent) !important;
	color:#fff !important;
}
body.catx-on #admin_wrap .admin_main_wrap:has(.owner-page-tabs) .owner-page-tabs a.is-active{
	box-shadow:0 2px 6px color-mix(in oklab, var(--cx-accent) 24%, transparent) !important;
}
/* hover: 같은 강조색 계열로만 (기존 규칙이 #0557fe 로 되돌리는 것 방지) */
body.catx-on #admin_wrap .admin_main_wrap:has(.owner-page-tabs) .owner-page-tabs a:hover{
	color:var(--cx-accent) !important;
}
body.catx-on #admin_wrap .admin_main_wrap:has(.owner-page-tabs) .top_fixed .search_input .input-group-btn > .btn:hover,
body.catx-on #admin_wrap .admin_main_wrap:has(.owner-page-tabs) .top_fixed .btn_member_add:hover{
	background:color-mix(in oklab, var(--cx-accent) 86%, #000) !important;
	border-color:color-mix(in oklab, var(--cx-accent) 86%, #000) !important;
	color:#fff !important;
}
body.catx-on #admin_wrap .admin_main_wrap:has(.owner-page-tabs) #searchConsoleTop .admin_item_right_box .btn_search:hover{
	background:#fff !important; color:var(--cx-accent) !important;
}
/* 목록 체크박스도 같은 강조색으로 (admin_member.php 의 accent-color:#0557fe 대체) */
body.catx-on #admin_wrap .admin_main_wrap:has(.owner-page-tabs) table.customer-list-v2 input[type="checkbox"],
body.catx-on #admin_wrap .admin_main_wrap:has(.owner-page-tabs) table.customer-owner-table input[type="checkbox"]{
	accent-color:var(--cx-accent) !important;
}
/* 관리 열: 삭제(빨강)와 구분되게 수정은 초록 계열로 */
body.catx-on #admin_wrap .admin_main_wrap:has(.owner-page-tabs) .customer-list-v2 .a_list_btn_box .btn_edit,
body.catx-on #admin_wrap .admin_main_wrap:has(.owner-page-tabs) .customer-owner-table .owner-manage-actions .btn_edit{
	color:var(--cx-green) !important;
}
body.catx-on #admin_wrap .admin_main_wrap:has(.owner-page-tabs) .customer-list-v2 .a_list_btn_box .btn_edit:hover,
body.catx-on #admin_wrap .admin_main_wrap:has(.owner-page-tabs) .customer-owner-table .owner-manage-actions .btn_edit:hover{
	border-color:var(--cx-green) !important;
	background:color-mix(in oklab, var(--cx-green) 10%, #fff) !important;
	color:var(--cx-green) !important;
}

/* =============================================================================
 * [공통] 관리자 목록 페이지 표준 디자인 — adminlist-std
 * -----------------------------------------------------------------------------
 * 기준 페이지: 고객 목록(/admin_member?type=owner) 의 디자인 체계를 규칙으로 뽑은 것.
 * 적용 방법: 목록 섹션에 class="section_whole adminlist-std", 제목 블록에
 *            class="adminlist-std-head" 를 붙인다. 페이지별 CSS 를 새로 쓰지 말고
 *            이 규칙을 재사용한다.
 * 적용 대상: 목록형 / 검색·필터가 있는 목록 페이지.
 * 예외 대상: 대시보드·매물목록·지도·캘린더·통계·채팅·프린트/제안서·브리핑·
 *            외부연동·전체화면 특수기능 → 클래스를 붙이지 않는다(색상만 공통).
 * 범위: catx(40~48) 전용. 일반형·모노톤 테마는 기존 화면 그대로.
 * 가로 스크롤: 목록은 table-layout:fixed + 본문 폭 100% 로 묶고, 넘칠 때는
 *            열 비율 축소와 줄바꿈으로 흡수한다(overflow-x 로 숨기지 않는다).
 * ========================================================================== */

/* ---- 토큰 ---------------------------------------------------------------- */
body.catx-on{
	--al-h:36px;            /* 컨트롤(입력·셀렉트·버튼) 공통 높이 */
	--al-h-sm:28px;         /* 행 안쪽 아이콘 버튼 */
	--al-r:7px;             /* 컨트롤 모서리 */
	--al-r-sm:6px;          /* 작은 버튼 모서리 */
	--al-r-card:10px;       /* 목록 카드 모서리 */
	--al-gap:6px;           /* 컨트롤 사이 간격 */
	--al-gap-row:10px;      /* 좌/우 그룹 사이 간격 */
	--al-pad:10px;          /* 본문 안쪽 여백 */
	--al-line:#dfe5ec;
	--al-line-soft:#edf1f5;
	--al-card:#fff;
	--al-head-bg:#fff;
	--al-head-line:#e8edf3;
	--al-title:#172033;
	--al-desc:#718096;
	--al-text:#344256;
	--al-sub:#6b7a8d;
	--al-thead-bg:#f8fafc;
	--al-thead-tx:#526174;
	--al-row-alt:#fbfcfe;
	--al-row-hover:#f2f6ff;
	--al-danger:#d6455d;
}
body.catx-on:not(.catx-light){
	--al-line:var(--cx-line);
	--al-line-soft:var(--cx-line-soft);
	--al-card:var(--cx-panel);
	--al-head-bg:var(--cx-panel);
	--al-head-line:var(--cx-line);
	--al-title:var(--cx-strong);
	--al-desc:var(--cx-sub);
	--al-text:var(--cx-body);
	--al-sub:var(--cx-sub);
	--al-thead-bg:var(--cx-row);
	--al-thead-tx:var(--cx-sub);
	--al-row-alt:transparent;
	--al-row-hover:var(--cx-chip);
	--al-danger:var(--cx-red);
}

/* ---- 1. 페이지 셸 --------------------------------------------------------
 * 제목은 고정, 목록만 안쪽에서 스크롤 -> 페이징이 항상 하단에 붙는다.
 * 폭은 본문 영역(사이드바 제외) 100%. box-sizing 으로 여백까지 안쪽 계산. */
body.catx-on #admin_wrap .admin_main_wrap:has(.adminlist-std){
	background:var(--cx-page-solid);
	box-sizing:border-box;
	max-width:100%;
	overflow-x:hidden;
}
@media (min-width:993px){
	body.catx-on #admin_wrap .admin_main_wrap:has(.adminlist-std){
		display:flex; flex-direction:column; min-height:0;
		padding:0 !important; overflow:hidden !important;
	}
	body.catx-on .adminlist-std-head{ flex:0 0 auto; }
	body.catx-on .adminlist-std{
		flex:1 1 auto; height:auto !important; min-height:0; padding:0 !important;
	}
	body.catx-on .adminlist-std > .container-fluid{
		display:flex; flex-direction:column; height:100%; min-height:0;
	}
	body.catx-on .adminlist-std .top_fixed{ flex:0 0 auto; }
	body.catx-on .adminlist-std > .container-fluid > .table-responsive{
		display:flex; flex:1 1 auto; height:auto !important; min-height:0; overflow:hidden;
	}
	body.catx-on .adminlist-std #list_box{
		display:flex; flex-direction:column; width:100%; height:100%; min-height:0;
	}
	body.catx-on .adminlist-std #list_box > .table_top_wrap{
		flex:1 1 auto; height:auto !important; min-height:0; overflow:auto;
	}
}

/* ---- 2. 제목 영역 --------------------------------------------------------
 * 본문 시작선(좌 18px)·제목 22px·설명 13px 를 기준 페이지와 동일하게. */
body.catx-on .adminlist-std-head{
	display:flex; align-items:center; justify-content:space-between; gap:18px;
	margin:0 !important; padding:14px 18px;
	background:var(--al-head-bg); border-bottom:1px solid var(--al-head-line);
	box-sizing:border-box;
}
body.catx-on .adminlist-std-head > div{ min-width:0; }
body.catx-on .adminlist-std-head > div > span{
	display:block; margin-bottom:4px; color:var(--cx-accent);
	font-size:var(--dash-font-12, 12px); font-weight:700; letter-spacing:.03em;
}
body.catx-on .adminlist-std-head :is(h1,h2){
	margin:0; color:var(--al-title); font-family:'NotoSansKR-Bold';
	font-size:22px; font-weight:normal; line-height:1.35;
}
body.catx-on .adminlist-std-head p{
	margin:3px 0 0; color:var(--al-desc); font-size:13px; line-height:1.5;
}
/* 제목 줄에 붙는 보조 버튼(이용안내 등)은 우측 고정 위치 */
body.catx-on .adminlist-std-head .adminlist-std-head-actions{
	display:flex; flex:0 0 auto; align-items:center; gap:var(--al-gap);
}
/* 제목 바로 뒤에 목록이 오면 .padder-v 위 여백이 겹쳐 유독 넓어진다 */
body.catx-on .adminlist-std-head + .adminlist-std.padder-v{ padding-top:0 !important; }

/* ---- 3. 본문/도구 영역 --------------------------------------------------- */
body.catx-on .adminlist-std{ background:var(--cx-page-solid); box-sizing:border-box; }
body.catx-on .adminlist-std > .container-fluid{
	width:100%; max-width:100%; padding:var(--al-pad) !important; box-sizing:border-box;
}
/* 좌: 개수·정렬·목록수·검색 / 우: 선택기능·엑셀·등록. 폭 부족하면 줄바꿈. */
body.catx-on .adminlist-std .top_fixed{
	display:flex; flex-wrap:wrap; align-items:center; justify-content:space-between;
	gap:var(--al-gap-row); width:100%; min-height:40px; height:auto;
	margin:0 !important; padding:0; border:0; background:none; float:none; box-sizing:border-box;
}
body.catx-on .adminlist-std .top_fixed .item_header_L,
body.catx-on .adminlist-std .top_fixed .item_header_R{
	display:flex; align-items:center; flex-wrap:wrap; gap:var(--al-gap);
	width:auto !important; min-width:0; height:auto; margin:0; padding:0; float:none;
}
body.catx-on .adminlist-std .top_fixed .item_header_L{ flex:1 1 auto; }
body.catx-on .adminlist-std .top_fixed .item_header_R{ flex:0 0 auto; justify-content:flex-end; }
body.catx-on .adminlist-std .top_fixed .item_header_R > *{ margin:0 !important; float:none; }

/* 카운트 배지 - 데이터 개수 공통 표기 */
body.catx-on .adminlist-std .top_fixed .badge_whole_num{
	display:inline-flex; align-items:center; height:var(--al-h); margin:0 !important;
	padding:0 12px; border:0 !important; border-radius:var(--al-r);
	background:var(--cx-accent) !important; color:#fff !important;
	font-size:13px; line-height:1; white-space:nowrap; box-shadow:none; float:none;
}
body.catx-on .adminlist-std .top_fixed .badge_whole_num:hover{
	background:var(--cx-accent) !important; color:#fff !important;
}
body.catx-on .adminlist-std .top_fixed .badge_whole_num .all_cnt{
	margin:0 2px 0 4px; font-family:'NotoSansKR-Bold'; font-size:15px;
}

/* 셀렉트/드롭다운 - 래퍼는 투명, 실제 상자는 버튼/셀렉트가 그린다 */
body.catx-on .adminlist-std .top_fixed .select_util_btn{ margin:0 !important; }
body.catx-on .adminlist-std .top_fixed .custom_select_box{
	width:auto; height:auto; background:transparent; border-radius:var(--al-r);
}
body.catx-on .adminlist-std .top_fixed :is(.custom_select,.select_box_offset){
	height:var(--al-h); border-color:var(--al-line); border-radius:var(--al-r);
}
body.catx-on .adminlist-std .top_fixed .custom_select_box .custom_select,
body.catx-on .adminlist-std .top_fixed .custom_select_box.open .dropdown-toggle.custom_select,
body.catx-on .adminlist-std .top_fixed .custom_select_box .custom_select.btn:hover,
body.catx-on .adminlist-std .top_fixed .custom_select_box .custom_select.btn:focus,
body.catx-on .adminlist-std .top_fixed .custom_select_box .custom_select.btn:active:focus{
	background:var(--al-card) !important; color:var(--al-text);
}
body.catx-on .adminlist-std .top_fixed .select_box_offset > select{
	height:var(--al-h); border-radius:var(--al-r); background-color:transparent;
	color:var(--al-text); font-size:13px;
}

/* 검색창 + 버튼은 하나의 그룹으로 */
/* '10개씩보기'와 키워드 검색은 .search_input 안의 형제다.
 * 기본 마크업이 float + 테이블 표시라 아래로 떨어졌다 -> 가로 1줄 flex. */
body.catx-on .adminlist-std .top_fixed .search_input,
body.catx-on .adminlist-std .top_fixed .search_input > form{
	display:flex; align-items:center; flex-wrap:nowrap; gap:var(--al-gap);
	position:static; width:auto !important; min-width:0; margin:0 !important; padding:0; float:none;
}
body.catx-on .adminlist-std .top_fixed .search_input .select_box_offset{
	flex:0 0 auto; margin:0 !important; float:none !important;
	/* 흰 바탕은 래퍼가 깔다 — select 에 배경을 주면 z-index:1 인 select 이
	 * 절대위치 화살표(<i>)를 가려버린다. */
	background:var(--al-card);
}
body.catx-on .adminlist-std .top_fixed .search_input .select_box_offset select ~ i{ z-index:2; color:var(--al-sub); }
body.catx-on .adminlist-std .top_fixed .search_input .input-group{
	display:flex; flex:1 1 230px; width:auto !important; max-width:280px; min-width:150px; margin:0 !important;
}
/* 검색어 입력칸에만. '10개씩보기' select 도 .form-control 이라
 * 그것까지 걸리면 오른쪽 모서리가 각지고 흰 배경이 화살표를 덮는다. */
body.catx-on .adminlist-std .top_fixed .search_input .input-group > .form-control{
	flex:1 1 auto; width:1%; min-width:0; height:var(--al-h);
	border-color:var(--al-line); border-radius:var(--al-r) 0 0 var(--al-r);
	background:var(--al-card); color:var(--al-text); font-size:13px; box-shadow:none;
}
body.catx-on .adminlist-std .top_fixed .search_input .input-group-btn{ width:auto; }
body.catx-on .adminlist-std .top_fixed .search_input .input-group-btn > .btn{
	height:var(--al-h); min-width:40px; padding:0 12px;
	border-radius:0 var(--al-r) var(--al-r) 0;
	background:var(--cx-accent) !important; border-color:var(--cx-accent) !important; color:#fff !important;
}
body.catx-on .adminlist-std .top_fixed .search_input .input-group-btn > .btn:hover{
	background:color-mix(in oklab, var(--cx-accent) 86%, #000);
	border-color:color-mix(in oklab, var(--cx-accent) 86%, #000); color:#fff;
}

/* 우측 기능 버튼 - 역할별 높이/모서리/글자 통일 */
/* 회원 목록에는 필터 콘솔(#searchConsoleTop)이 없어 '필터' 버튼이 동작하지 않는다 -> 숨김 */
body.catx-on .adminlist-std .top_fixed .mobile_search_btns{ display:none !important; }
body.catx-on .adminlist-std .top_fixed .item_header_R > .btn{
	display:inline-flex; align-items:center; justify-content:center; gap:5px;
	height:var(--al-h); min-height:var(--al-h); padding:0 13px;
	border-radius:var(--al-r); font-size:13px; line-height:1; white-space:nowrap;
}
body.catx-on .adminlist-std .top_fixed .btn_excel{
	width:var(--al-h) !important; min-width:var(--al-h); padding:0 !important;
	border:1px solid var(--al-line) !important; background:var(--al-card) !important;
}
body.catx-on .adminlist-std .top_fixed .btn_member_add{
	font-family:'NotoSansKR-Bold'; font-weight:normal;
	background:var(--cx-accent) !important; border-color:var(--cx-accent) !important; color:#fff !important;
}
body.catx-on .adminlist-std .top_fixed .btn_member_add:hover{
	background:color-mix(in oklab, var(--cx-accent) 86%, #000) !important;
	border-color:color-mix(in oklab, var(--cx-accent) 86%, #000) !important; color:#fff !important;
}

/* ---- 4. 목록 카드 -------------------------------------------------------- */
body.catx-on .adminlist-std > .container-fluid > .table-responsive{
	width:100%; max-width:100%; min-width:0; margin:8px 0 0 !important;
	border:1px solid var(--al-line); border-radius:var(--al-r-card);
	background:var(--al-card); box-shadow:0 2px 10px rgba(20,33,61,.04);
	box-sizing:border-box; overflow:hidden; float:none;
}
body.catx-on .adminlist-std #list_box{ width:100%; min-width:0; }

/* 테이블: 본문 폭 안에서 고정 레이아웃 -> 가로 스크롤이 생기지 않는다 */
body.catx-on .adminlist-std .table_pc{
	table-layout:fixed; width:100%; max-width:100%; min-width:0 !important; margin:0;
	border:0; border-collapse:separate; border-spacing:0; box-shadow:none;
}
/* 헤더 고정: border-collapse 테이블은 sticky 시 경계선이 같이 스크롤되므로 그림자로 대체 */
body.catx-on .adminlist-std .table_pc > thead > tr > th{
	position:sticky; top:0; z-index:4;
	height:46px; padding:0 8px; border:0; box-shadow:inset 0 -1px 0 var(--al-line);
	background:var(--al-thead-bg) !important; color:var(--al-thead-tx) !important;
	font-family:'NotoSansKR-Bold'; font-size:13px; font-weight:normal; line-height:1.35;
	vertical-align:middle; white-space:normal; overflow-wrap:anywhere;
}
body.catx-on .adminlist-std .table_pc > tbody > tr > td{
	height:76px; padding:8px 10px; border-top:0; border-bottom:1px solid var(--al-line-soft);
	color:var(--al-text); font-size:13px; line-height:20px; vertical-align:middle;
	white-space:normal; overflow-wrap:anywhere; word-break:break-word;
}
body.catx-on .adminlist-std .table_pc.table-striped > tbody > tr:nth-of-type(odd) > td{
	background:var(--al-card);
}
body.catx-on .adminlist-std .table_pc.table-striped > tbody > tr:nth-of-type(even) > td{
	background:var(--al-row-alt);
}
body.catx-on .adminlist-std .table_pc > tbody > tr:hover > td{ background:var(--al-row-hover); }
body.catx-on .adminlist-std .table_pc a{ color:var(--cx-accent); }
body.catx-on .adminlist-std .table_pc > tbody > tr:last-child > td{ border-bottom:0; }
body.catx-on .adminlist-std .table_pc :is(th,td):not(:last-child){ border-right:1px solid #e4e9f0; }
body.catx-on:not(.catx-light) .adminlist-std .table_pc :is(th,td):not(:last-child){ border-right-color:var(--al-line-soft); }
body.catx-on .adminlist-std .table_pc input[type="checkbox"]{
	width:16px; height:16px; margin:0; accent-color:var(--cx-accent);
}
body.catx-on .adminlist-std .table_pc td h5{
	max-width:100%; margin:0 !important; overflow:hidden;
	color:var(--al-title); font-family:'NotoSansKR-Medium'; font-size:14px; font-weight:normal;
	line-height:21px; text-align:left !important; text-overflow:ellipsis; white-space:nowrap;
}

/* 열 폭: 체크·번호·날짜·비고는 최소로, 이름/이메일 등 주요 정보에 여유를 준다.
 * 레거시 width 속성(230/180/150/100)을 CSS 로 재배분한다. */
body.catx-on .adminlist-std .table_pc :is(th,td):first-child{ width:38px; padding-left:6px; padding-right:6px; }
body.catx-on .adminlist-std .table_pc th.owner-legacy-number-col{ width:54px; }
body.catx-on .adminlist-std .table_pc th[width="230"]{ width:15%; }
body.catx-on .adminlist-std .table_pc th.owner-contact-col[width="150"]{ width:120px; }
body.catx-on .adminlist-std .table_pc th.owner-date-col[width="180"]{ width:114px; }
body.catx-on .adminlist-std .table_pc th[width="180"]:not(.owner-date-col){ width:104px; }
body.catx-on .adminlist-std .table_pc th[width="100"]{ width:74px; }
body.catx-on .adminlist-std .table_pc .member-signup-method-col{ width:110px; min-width:110px; }
body.catx-on .adminlist-std .table_pc .member-signup-method-col .social_member{
	width:80px; max-width:80px; margin:0 auto; white-space:nowrap; overflow:visible;
}
body.catx-on .adminlist-std .table_pc .member-confirm-col{ width:64px; min-width:64px; }
body.catx-on .adminlist-std .table_pc .member-related-item-col{ width:82px; min-width:82px; }
/* 일반·비즈니스회원 등록/수정일은 위의 레거시 114px 규칙보다 구체적으로 덮어쓴다.
 * 셀 안쪽 유효 폭 164px를 확보해 각 날짜 줄이 다음 열로 넘치지 않게 한다. */
body.catx-on .adminlist-std .table_pc th.owner-date-col.member-date-col[width="180"]{
	width:184px; min-width:184px;
}
body.catx-on .adminlist-std .table_pc td.owner-date-col.member-date-col{
	width:184px; min-width:184px; overflow:hidden;
}
body.catx-on .adminlist-std .table_pc .member-date-col .dates_box{
	font-size:var(--dash-font-12, 12px); line-height:18px;
}
body.catx-on .adminlist-std .table_pc th.member-date-col .member_list_moddate_box{
	font-family:inherit; font-size:inherit; font-weight:inherit;
}
body.catx-on .adminlist-std .table_pc .member-date-col .dates_box > div{ white-space:nowrap; }
body.catx-on .adminlist-std .table_pc .member-map-auth-col{ width:116px; min-width:116px; white-space:nowrap; }
body.catx-on .adminlist-std .table_pc .member-map-auth-col label{ white-space:nowrap; }
body.catx-on .adminlist-std .table_pc :is(th,td):last-child{ width:76px; }
/* 등록/수정일·삭제일은 한 칸 안에서 두 줄로 */
body.catx-on .adminlist-std .table_pc td .date_boxs{ display:block; font-size:var(--dash-font-12, 12px); line-height:18px; }
body.catx-on .adminlist-std .table_pc td .date_boxs + .date_boxs{ color:var(--al-sub); }

/* 상태/구분 배지 공통 */
body.catx-on .adminlist-std .table_pc :is(.badge,.label,.officer_type){
	display:inline-flex; align-items:center; justify-content:center;
	min-height:22px; padding:0 8px; border-radius:11px;
	font-size:var(--dash-font-11_5, 11.5px); font-weight:normal; line-height:1;
}

/* 행 안 관리 버튼 - 수정=초록, 삭제=빨강, 복원=강조색, 나머지는 회색 아웃라인 */
body.catx-on .adminlist-std .table_pc :is(.a_list_btn_box,.btns_box){
	display:flex; align-items:center; justify-content:center; flex-wrap:wrap; gap:4px;
}
body.catx-on .adminlist-std .table_pc :is(.a_list_btn_box,.btns_box) > .btn{
	display:inline-flex; align-items:center; justify-content:center;
	width:var(--al-h-sm) !important; height:var(--al-h-sm); min-width:var(--al-h-sm);
	margin:0 !important; padding:0 !important; border:1px solid var(--al-line);
	border-radius:var(--al-r-sm); background:var(--al-card); color:var(--al-sub);
	font-size:var(--dash-font-12, 12px); line-height:1; float:none;
}
body.catx-on .adminlist-std .table_pc .btn_edit{ color:var(--cx-green); }
body.catx-on .adminlist-std .table_pc .btn_edit:hover{
	border-color:var(--cx-green); background:color-mix(in oklab, var(--cx-green) 10%, var(--al-card)); color:var(--cx-green);
}
body.catx-on .adminlist-std .table_pc :is(.btn_remove,.btn_delete){ color:var(--al-danger); }
body.catx-on .adminlist-std .table_pc :is(.btn_remove,.btn_delete):hover{
	border-color:var(--al-danger); background:color-mix(in oklab, var(--al-danger) 10%, var(--al-card)); color:var(--al-danger);
}
body.catx-on .adminlist-std .table_pc :is(.btn_restore,.btn_resave){
	color:var(--cx-accent); border-color:color-mix(in oklab, var(--cx-accent) 35%, var(--al-line));
}
body.catx-on .adminlist-std .table_pc :is(.btn_restore,.btn_resave):hover{
	background:var(--cx-accent); border-color:var(--cx-accent); color:#fff;
}
/* 회원 목록 비고 칸은 텍스트형 미니홈 + 아이콘형 수정/삭제의 2단 구성이다. */
body.catx-on .adminlist-std .table_pc td.a_list_btn_box{
	display:grid; grid-template-columns:repeat(2, 28px); align-content:center; justify-content:center;
	gap:4px 5px;
}
body.catx-on .adminlist-std .table_pc td.a_list_btn_box > .btn_minihome{
	grid-column:1 / -1; width:61px !important; height:25px; min-width:61px;
	padding:0 6px !important; border-color:color-mix(in oklab, var(--cx-accent) 35%, var(--al-line));
	color:var(--cx-accent); font-size:var(--dash-font-11, 11px); line-height:23px; white-space:nowrap;
}

/* ---- 5. 빈 상태 ---------------------------------------------------------- */
body.catx-on .adminlist-std #list_box > .text-muted{
	display:flex; align-items:center; justify-content:center;
	flex:1 1 auto; min-height:220px; margin:0; padding:48px 16px;
	color:var(--al-sub); font-size:15px; text-align:center;
}

/* ---- 6. 페이징 ----------------------------------------------------------- */
body.catx-on .adminlist-std #list_box > .text-center:has(> ul:is(.pagination,.pagination-sm,.customer_pagination,.pagination_meeting)){
	position:relative; z-index:3; flex:0 0 auto;
	display:flex; align-items:center; justify-content:center;
	min-height:46px; margin:0; padding:7px 8px;
	border-top:1px solid var(--al-line); background:var(--al-card);
	box-shadow:0 -3px 10px rgba(20,33,61,.05); box-sizing:border-box;
}

/* ---- 7. 반응형 ----------------------------------------------------------- */
@media (max-width:1400px){
	body.catx-on .adminlist-std .top_fixed .search_input .input-group{ flex-basis:200px; max-width:240px; }
}
@media (max-width:1180px){
	/* 폭이 모자라면 도구 영역을 두 줄로: 좌측 그룹 -> 우측 그룹 순 */
	body.catx-on .adminlist-std .top_fixed .item_header_L,
	body.catx-on .adminlist-std .top_fixed .item_header_R{ width:100% !important; }
	body.catx-on .adminlist-std .top_fixed .item_header_R{ justify-content:flex-start; }
	body.catx-on .adminlist-std .top_fixed .search_input .input-group{ flex-basis:240px; max-width:360px; }
}
@media (max-width:992px){
	/* 모바일: 페이지 스크롤로 되돌리고 목록은 행 단위 카드로 */
	body.catx-on #admin_wrap .admin_main_wrap:has(.adminlist-std){
		display:block; height:auto !important; min-height:0 !important; overflow:visible !important;
	}
	body.catx-on .adminlist-std{
		height:auto !important; min-height:0 !important; overflow:visible !important;
		padding:0 0 72px !important;   /* 고정 페이징·플로팅 상담 버튼과 겹치지 않게 */
	}
	body.catx-on .adminlist-std-head{ display:block; padding:12px 12px 10px; }
	body.catx-on .adminlist-std-head :is(h1,h2){ font-size:19px; }
	body.catx-on .adminlist-std-head p{ font-size:var(--dash-font-12, 12px); }
	body.catx-on .adminlist-std > .container-fluid{ padding:10px 12px 0 !important; }
	/* 기존 모바일 규칙이 .top_fixed 를 float, .search_input 을 position:absolute 로
	 * 댁겨 둔다. 그것부터 풀어야 세로 1열 도구 영역이 잡힌다. */
	/* 도구 영역을 2줄로 고정: [개수 배지 ... 엑셀·등록] / [검색 전체폭]
	 * 검색창이 .item_header_L 안에 있어 그대로 두면 3줄이 된다.
	 * 그룹을 display:contents 로 풀어 자식을 .top_fixed 의 직접 항목으로
	 * 만든 뒤 order 로 배치한다. 기존 모바일 CSS 의 float/absolute 도 같이 풀어준다. */
	body.catx-on .adminlist-std .top_fixed{
		display:flex !important; flex-direction:row; flex-wrap:wrap; align-items:center; gap:8px;
		position:static !important; float:none !important; width:100% !important;
	}
	body.catx-on .adminlist-std .top_fixed .item_header_L{ display:contents !important; }
	body.catx-on .adminlist-std .top_fixed .item_header_L .badge_whole_num{ order:1; flex:0 0 auto; }
	body.catx-on .adminlist-std .top_fixed .item_header_R{
		order:2; display:flex !important; position:static !important; float:none !important;
		flex:0 0 auto; width:auto !important; height:auto !important;
		margin:0 0 0 auto !important; justify-content:flex-end; gap:6px;
	}
	body.catx-on .adminlist-std .top_fixed .search_input{
		order:3; display:flex !important; position:static !important; float:none !important;
		top:auto !important; right:auto !important; left:auto !important;
		flex:1 1 100%; width:100% !important; min-width:0; margin:0 !important;
	}
	/* 검색줄은 한 줄을 다 쓴다 — 사이의 form 까지 100% 로 펼쳐야
	 * 입력칸이 가로로 꽉 찬다(form 은 기본이 shrink-to-fit). */
	body.catx-on .adminlist-std .top_fixed .search_input > form{
		flex:1 1 100%; width:100% !important; min-width:0;
	}
	body.catx-on .adminlist-std .top_fixed .search_input .input-group{
		flex:1 1 auto; width:100% !important; min-width:0; max-width:none;
	}
	/* 정렬·목록수는 기존과 같이 모바일에서 숨김(레거시 동작 유지) */
	body.catx-on .adminlist-std .top_fixed .search_input .select_box_offset{ display:none !important; }
	body.catx-on .adminlist-std .table_pc{ display:none !important; }
	body.catx-on .adminlist-std > .container-fluid > .table-responsive{
		height:auto !important; min-height:0 !important; overflow:visible !important;
		border:0; border-radius:0; background:transparent; box-shadow:none;
	}
	body.catx-on .adminlist-std :is(#list_box,#list_box .table_top_wrap){
		height:auto !important; min-height:0 !important; overflow:visible !important; float:none !important;
	}
	body.catx-on .adminlist-std .table_mobile{ display:block; width:100%; margin:0; border:0; background:transparent; }
	body.catx-on .adminlist-std .table_mobile > tbody{ display:grid; gap:10px; width:100%; }
	body.catx-on .adminlist-std .table_mobile > tbody > tr{
		display:block; width:100%; border:1px solid var(--al-line);
		border-radius:12px; background:var(--al-card);
		box-shadow:0 2px 8px rgba(30,60,100,.06); overflow:hidden;
	}
	body.catx-on .adminlist-std .table_mobile > tbody > tr > td{
		display:block; width:100%; padding:13px !important; border:0; background:transparent; box-sizing:border-box;
	}
	body.catx-on .adminlist-std .table_mobile td > div:not(:last-child){ border-color:var(--al-line-soft); }
	body.catx-on .adminlist-std .table_mobile .table_tp{ padding:0 0 10px; }
	body.catx-on .adminlist-std .table_mobile .table_tp_top{
		display:flex; align-items:center; flex-wrap:wrap; gap:4px 8px; margin:0 0 8px;
	}
	body.catx-on .adminlist-std .table_mobile .table_tp_top .user_name{
		color:var(--al-title); font-size:15px; font-weight:700; line-height:1.4; overflow-wrap:anywhere;
	}
	body.catx-on .adminlist-std .table_mobile .table_tp_btm{
		display:grid; gap:5px; min-width:0; color:var(--al-sub); font-size:var(--dash-font-12, 12px); line-height:1.5; overflow-wrap:anywhere;
	}
	body.catx-on .adminlist-std .table_mobile .table_tp_btm a{ color:var(--cx-accent); }
	body.catx-on .adminlist-std .table_mobile .table_md{ padding:9px 0; color:var(--al-sub); font-size:var(--dash-font-12, 12px); line-height:1.5; }
	body.catx-on .adminlist-std .table_mobile .table_md .date_boxs{ display:inline-flex; flex-wrap:wrap; gap:3px; }
	body.catx-on .adminlist-std .table_mobile .table_bt{ padding:10px 0 0; border-top:1px solid var(--al-line-soft); }
	body.catx-on .adminlist-std .table_mobile .table_bt .a_list_btn_box{
		display:flex; align-items:flex-start; justify-content:space-between; gap:8px; width:100%;
	}
	body.catx-on .adminlist-std .table_mobile .table_bt .a_list_btn_box_L{ flex:1 1 auto; width:auto; min-width:0; margin:0; }
	body.catx-on .adminlist-std .table_mobile .table_bt .a_list_btn_box_R{
		display:flex; flex:0 0 auto; align-items:center; gap:5px; width:auto; min-width:0;
	}
	body.catx-on .adminlist-std .table_mobile .table_bt .btns_box{ display:flex; flex-wrap:wrap; gap:5px; width:100%; }
	body.catx-on .adminlist-std .table_mobile .table_bt .btns_box > *{
		display:inline-flex; align-items:center; justify-content:center;
		width:auto !important; height:30px !important; min-height:30px !important;
		margin:0 !important; padding:0 8px !important; border-radius:var(--al-r-sm);
		font-size:var(--dash-font-11, 11px); line-height:1 !important; float:none !important;
	}
	body.catx-on .adminlist-std .table_mobile .table_bt .a_list_btn_box_R .btn{
		display:inline-flex; align-items:center; justify-content:center;
		width:30px !important; height:30px !important; margin:0 !important; padding:0 !important;
		border:1px solid var(--al-line); border-radius:var(--al-r-sm); float:none !important;
	}
	body.catx-on .adminlist-std .table_mobile .table_bt .a_list_btn_box_R .btn i{
		display:block; width:auto !important; height:auto !important; font-size:var(--dash-font-12, 12px) !important; line-height:1 !important; float:none !important;
	}
	/* 빈 상태도 목록 카드처럼 보이게(바탕과 구분), 높이도 과하지 않게 */
	body.catx-on .adminlist-std #list_box > .text-muted{
		flex:0 0 auto; min-height:0; margin:0; padding:40px 16px;
		border:1px solid var(--al-line); border-radius:12px; background:var(--al-card);
		font-size:14px;
	}
	body.catx-on .adminlist-std #list_box > .text-center:has(> ul:is(.pagination,.pagination-sm,.customer_pagination,.pagination_meeting)){
		position:fixed; left:0; right:0; bottom:0; z-index:2000;
		padding:7px 8px max(7px,env(safe-area-inset-bottom));
		box-shadow:0 -2px 8px rgba(0,0,0,.08);
	}
	body.catx-on.catx-modal-vis .adminlist-std #list_box > .text-center:has(> ul:is(.pagination,.pagination-sm,.customer_pagination,.pagination_meeting)){ z-index:1000; }
}

/* =============================================================================
 * [공통 적용] 의뢰 · 상담신청 · 전화시도 · 투어신청 · 내 집 요청 목록
 *   /admin_request, /admin_call, /admin_direct_call, /admin_tour,
 *   /admin_find_home/admin_find_list (삭제 목록 포함)
 * -----------------------------------------------------------------------------
 * 이 계열은 .admin_request_wrap > .container-fluid > header.request-heading +
 * .request-toolbar + .request-list-shell 구조라 .adminlist-std 를 그대로 붙일 수
 * 없다. 마크업은 건드리지 않고 같은 토큰(--al-*)으로 값만 기준 페이지에 맞춘다.
 * 각 페이지의 인라인 <style>(admin/request_style.php)보다 뒤에 오지 않으므로
 * 선택자에 body.catx-on 을 붙여 클래스 하나만큼 특이도를 올려 이긴다.
 * catx(40~48) 전용 — 다른 테마는 기존 화면 그대로.
 * ========================================================================== */
body.catx-on .admin_request_wrap{ padding:0 0 18px; color:var(--al-text); }
body.catx-on .admin_request_wrap > .container-fluid{
	width:100%; max-width:100%; padding:0 var(--al-pad); box-sizing:border-box;
}

/* 제목: 기준 페이지처럼 전폭 흰 띠 + 좌 18px 시작선 */
body.catx-on .admin_request_wrap .request-heading{
	align-items:center; gap:18px;
	margin:0 calc(var(--al-pad) * -1) var(--al-pad);
	padding:14px 18px;
	background:var(--al-head-bg); border-bottom:1px solid var(--al-head-line);
}
body.catx-on .admin_request_wrap .request-heading h1{
	margin:0; color:var(--al-title); font-family:'NotoSansKR-Bold';
	font-size:22px; font-weight:normal; line-height:1.35; letter-spacing:-.3px;
}
body.catx-on .admin_request_wrap .request-heading p{
	margin:3px 0 0; color:var(--al-desc); font-size:13px; line-height:1.5;
}
/* 제목 옆 건수 = 공통 카운트 배지 */
body.catx-on .admin_request_wrap .request-count{
	display:inline-flex; align-items:center; height:26px; padding:0 10px;
	border-radius:var(--al-r); background:var(--cx-accent); color:#fff;
	font-size:13px; font-weight:normal; letter-spacing:0;
}
/* 이용안내 = 보조 버튼 규격 */
body.catx-on .admin_request_wrap .request-guide{
	display:inline-flex; align-items:center; gap:5px;
	height:var(--al-h); padding:0 13px;
	border:1px solid var(--al-line); border-radius:var(--al-r);
	background:var(--al-card); color:var(--al-sub); font-size:13px; white-space:nowrap;
}
body.catx-on .admin_request_wrap .request-guide:hover{
	border-color:var(--cx-accent); color:var(--cx-accent);
}

/* 도구 영역: 카드가 아니라 회색 바탕 위 한 줄 */
body.catx-on .admin_request_wrap .request-toolbar{
	gap:var(--al-gap); padding:0 0 8px; border:0; border-radius:0; background:transparent;
}
body.catx-on .admin_request_wrap .request-toolbar label{ font-size:13px; font-weight:normal; color:var(--al-sub); }
body.catx-on .admin_request_wrap .request-toolbar .form-control{
	height:var(--al-h); border:1px solid var(--al-line); border-radius:var(--al-r);
	background:var(--al-card); color:var(--al-text); font-size:13px; box-shadow:none;
}
body.catx-on .admin_request_wrap .request-toolbar select.form-control{ flex:0 0 140px; width:140px; }
/* 검색창 + 버튼은 하나의 그룹 */
body.catx-on .admin_request_wrap .request-search{ gap:0; flex:0 1 auto; max-width:320px; margin-left:auto; }
body.catx-on .admin_request_wrap .request-search input{ border-radius:var(--al-r) 0 0 var(--al-r); }
body.catx-on .admin_request_wrap .request-search button{
	height:var(--al-h); padding:0 14px; border:1px solid var(--cx-accent);
	border-radius:0 var(--al-r) var(--al-r) 0;
	background:var(--cx-accent); color:#fff; font-size:13px; font-weight:normal;
}
body.catx-on .admin_request_wrap .request-search button:hover{
	background:color-mix(in oklab, var(--cx-accent) 86%, #000);
	border-color:color-mix(in oklab, var(--cx-accent) 86%, #000);
}

/* 목록 카드 */
body.catx-on .admin_request_wrap .request-list-shell{
	border:1px solid var(--al-line); border-radius:var(--al-r-card);
	background:var(--al-card); box-shadow:0 2px 10px rgba(20,33,61,.04); overflow:hidden;
}
body.catx-on .admin_request_wrap .request-table-scroll{ overflow-x:visible; }
body.catx-on .admin_request_wrap .request-table{ width:100%; max-width:100%; table-layout:fixed; }
body.catx-on .admin_request_wrap .request-table thead{ background:var(--al-thead-bg) !important; }
body.catx-on .admin_request_wrap .request-table thead th{
	height:46px; padding:0 10px; border:0; box-shadow:inset 0 -1px 0 var(--al-line);
	background:var(--al-thead-bg); color:var(--al-thead-tx);
	font-family:'NotoSansKR-Bold'; font-size:13px; font-weight:normal; vertical-align:middle;
}
body.catx-on .admin_request_wrap .request-table tbody td{
	padding:12px 10px; border-bottom:1px solid var(--al-line-soft);
	color:var(--al-text); font-size:13px; line-height:20px;
}
body.catx-on .admin_request_wrap .request-table tbody tr:hover{ background:var(--al-row-hover); }
body.catx-on .admin_request_wrap .request-title{ color:var(--al-title); font-size:14px; }
body.catx-on .admin_request_wrap .request-title:hover{ color:var(--cx-accent); }
body.catx-on .admin_request_wrap .request-phone:hover{ color:var(--cx-accent); }

/* 행 버튼: 보조 버튼 규격 / 삭제는 위험색 */
body.catx-on .admin_request_wrap .request-action{
	min-height:var(--al-h-sm); padding:0 9px;
	border:1px solid var(--al-line); border-radius:var(--al-r-sm);
	background:var(--al-card); color:var(--al-sub); font-size:var(--dash-font-12, 12px); font-weight:normal;
}
body.catx-on .admin_request_wrap .request-action:hover{
	border-color:var(--cx-accent); background:var(--al-card); color:var(--cx-accent);
}
body.catx-on .admin_request_wrap .request-action.is-delete{ color:var(--al-danger); border-color:var(--al-line); }
body.catx-on .admin_request_wrap .request-action.is-delete:hover{ border-color:var(--al-danger); color:var(--al-danger); }

/* 페이징 바 */
body.catx-on .admin_request_wrap .request-pagination{
	min-height:46px; margin:0; padding:7px 8px;
	border-top:1px solid var(--al-line); background:var(--al-card);
}
body.catx-on .admin_request_wrap .request-pagination .pagination{ margin:0 !important; }

/* 빈 상태 */
body.catx-on .admin_request_wrap .request-empty{ padding:48px 16px; color:var(--al-sub); }
body.catx-on .admin_request_wrap .request-empty strong{ color:var(--al-title); font-size:15px; font-weight:normal; font-family:'NotoSansKR-Bold'; }
body.catx-on .admin_request_wrap .request-empty p{ font-size:13px; }

@media (max-width:1199px) and (min-width:993px){
	/* 좁은 PC 에서도 가로 스크롤을 만들지 않는다(기존 min-width:970px 해제) */
	body.catx-on .admin_request_wrap .request-table{ min-width:0; }
	body.catx-on .admin_request_wrap .request-search{ max-width:260px; }
}
@media (max-width:992px){
	body.catx-on .admin_request_wrap{ padding:0 0 24px; }
	body.catx-on .admin_request_wrap > .container-fluid{ padding:0 12px; }
	body.catx-on .admin_request_wrap .request-heading{
		gap:10px; margin:0 -12px 10px; padding:12px 12px 10px;
	}
	body.catx-on .admin_request_wrap .request-heading h1{ font-size:19px; }
	body.catx-on .admin_request_wrap .request-heading p{ font-size:var(--dash-font-12, 12px); }
	body.catx-on .admin_request_wrap .request-guide{ height:32px; padding:0 10px; font-size:var(--dash-font-12, 12px); }
	body.catx-on .admin_request_wrap .request-count{ height:24px; padding:0 8px; font-size:var(--dash-font-12, 12px); }
	body.catx-on .admin_request_wrap .request-toolbar{ flex-wrap:wrap; gap:8px; padding:0 0 10px; }
	body.catx-on .admin_request_wrap .request-search{ flex:0 0 100%; max-width:none; margin-left:0; }
	body.catx-on .admin_request_wrap .request-list-shell{
		margin-top:0; border:0; border-radius:0; background:transparent; box-shadow:none; overflow:visible;
	}
	body.catx-on .admin_request_wrap .request-table tbody tr{
		border:1px solid var(--al-line) !important; border-radius:12px;
		background:var(--al-card) !important; box-shadow:0 2px 8px rgba(30,60,100,.06);
	}
	body.catx-on .admin_request_wrap .request-table tbody td{ padding:0; border:0; }
	body.catx-on .admin_request_wrap .request-pagination{
		border:0; border-radius:12px; margin-top:10px;
	}
	body.catx-on .admin_request_wrap .request-empty{
		border:1px solid var(--al-line); border-radius:12px; background:var(--al-card);
	}
}

/* ── [모바일] 의뢰 계열: 문서 스크롤 + 페이징 하단 고정 ─────────────────────
 * 회원 목록(adminlist-std)과 같은 규칙으로 맞춘다. */
@media (max-width:992px){
	body.catx-on #admin_wrap .admin_main_wrap:has(.admin_request_wrap){
		height:auto !important; min-height:0 !important; overflow:visible !important;
	}
	body.catx-on #admin_wrap:has(.admin_request_wrap){ height:auto !important; overflow:visible !important; }
	body.catx-on .admin_request_wrap{
		height:auto !important; min-height:0 !important; overflow:visible !important;
		padding:0 0 72px !important;   /* 하단 고정 페이징·플로팅 버튼과 겹치지 않게 */
	}
	body.catx-on .admin_request_wrap .request-list-shell,
	body.catx-on .admin_request_wrap .request-table-scroll{
		height:auto !important; min-height:0 !important; overflow:visible !important;
	}
	body.catx-on .admin_request_wrap .request-pagination{
		position:fixed !important; left:0; right:0; bottom:0; z-index:2000;
		display:flex; align-items:center; justify-content:center;
		min-height:46px; margin:0; padding:7px 8px max(7px,env(safe-area-inset-bottom));
		border:0; border-top:1px solid var(--al-line); border-radius:0;
		background:var(--al-card); box-shadow:0 -2px 8px rgba(0,0,0,.08); box-sizing:border-box;
	}
	body.catx-on.catx-modal-vis .admin_request_wrap .request-pagination{ z-index:1000; }
}

/* =============================================================================
 * [공통 적용] 챗봇 대화 목록 — /admin_chatbot
 * -----------------------------------------------------------------------------
 * 대화 보기(모달)는 채팅 UI 라 그대로 두고, '목록 화면'만 기준 페이지 체계에 맞춘다.
 * 페이지 인라인 <style> 이 #admin-chatbot-page(ID) 스코프라, 여기서도 같은 ID 를
 * 써서 특이도를 이긴다(body.catx-on 한 클래스만큼 우위).
 * ========================================================================== */
body.catx-on #admin-chatbot-page{
	padding:0 var(--al-pad) var(--al-pad); background:var(--cx-page-solid); box-sizing:border-box;
}
/* 제목 영역: 전폭 흰 띠 + 좌 18px 시작선, 우측에 검색·새로고침 */
body.catx-on #admin-chatbot-page > .chatbot-card.chatbot-toolbar{
	margin:0 calc(var(--al-pad) * -1) var(--al-pad); padding:14px 18px;
	border:0; border-bottom:1px solid var(--al-head-line); border-radius:0;
	background:var(--al-head-bg); box-shadow:none;
}
body.catx-on #admin-chatbot-page .chatbot-toolbar h2{
	margin:0; color:var(--al-title); font-family:'NotoSansKR-Bold';
	font-size:22px; font-weight:normal; line-height:1.35; letter-spacing:-.3px;
}
body.catx-on #admin-chatbot-page .chatbot-toolbar p{
	margin:3px 0 0; color:var(--al-desc); font-size:13px; line-height:1.5;
}
/* 검색 + 새로고침 = 공통 컨트롤 규격 */
body.catx-on #admin-chatbot-page .chatbot-toolbar .chatbot-toolbar{
	gap:var(--al-gap); margin:0; padding:0; background:transparent; border:0;
}
body.catx-on #admin-chatbot-page .chatbot-search input,
body.catx-on #admin-chatbot-page .chatbot-search select{
	height:var(--al-h); border:1px solid var(--al-line); border-radius:var(--al-r);
	background:var(--al-card); color:var(--al-text); font-size:13px; box-shadow:none;
}
body.catx-on #admin-chatbot-page .chatbot-refresh{
	display:inline-flex; align-items:center; gap:5px;
	height:var(--al-h); padding:0 13px;
	border:1px solid var(--al-line); border-radius:var(--al-r);
	background:var(--al-card); color:var(--al-sub); font-size:13px; white-space:nowrap;
}
body.catx-on #admin-chatbot-page .chatbot-refresh:hover{ border-color:var(--cx-accent); color:var(--cx-accent); }
/* 탭 */
body.catx-on #admin-chatbot-page .chatbot-tabs{ gap:var(--al-gap); margin:0 0 8px; }
body.catx-on #admin-chatbot-page .chatbot-tab{
	height:32px; padding:0 12px; border:1px solid var(--al-line); border-radius:var(--al-r);
	background:var(--al-card); color:var(--al-sub); font-size:13px; font-weight:normal;
}
body.catx-on #admin-chatbot-page .chatbot-tab.is-on{
	background:var(--cx-accent); border-color:var(--cx-accent); color:#fff;
}
/* 목록 카드 */
body.catx-on #admin-chatbot-page .chatbot-card.chatbot-table-wrap{
	border:1px solid var(--al-line); border-radius:var(--al-r-card);
	background:var(--al-card); box-shadow:0 2px 10px rgba(20,33,61,.04); overflow:hidden;
}
/* 가로 스크롤 금지: min-width:1100px 해제 + 고정 레이아웃 */
body.catx-on #admin-chatbot-page .chatbot-table-scroll{ overflow:visible; }
body.catx-on #admin-chatbot-page .chatbot-table{
	width:100%; max-width:100%; min-width:0; table-layout:fixed;
}
body.catx-on #admin-chatbot-page .chatbot-table th{
	height:46px; padding:0 10px; border:0; box-shadow:inset 0 -1px 0 var(--al-line);
	background:var(--al-thead-bg); color:var(--al-thead-tx);
	font-family:'NotoSansKR-Bold'; font-size:13px; font-weight:normal;
	white-space:normal; vertical-align:middle;
}
body.catx-on #admin-chatbot-page .chatbot-table td{
	padding:12px 10px; border-bottom:1px solid var(--al-line-soft);
	color:var(--al-text); font-size:13px; line-height:20px; vertical-align:middle;
	white-space:normal; overflow-wrap:anywhere; word-break:break-word;
}
body.catx-on #admin-chatbot-page .chatbot-table tr:hover{ background:var(--al-row-hover); }
body.catx-on #admin-chatbot-page :is(.chatbot-summary,.chatbot-memo){ max-width:none; }
/* 상세보기 버튼 = 보조 버튼 규격 */
body.catx-on #admin-chatbot-page .chatbot-view{
	display:inline-flex; align-items:center; justify-content:center;
	min-height:var(--al-h-sm); padding:0 10px;
	border:1px solid var(--al-line); border-radius:var(--al-r-sm);
	background:var(--al-card); color:var(--al-sub); font-size:var(--dash-font-12, 12px); font-weight:normal; box-shadow:none;
}
body.catx-on #admin-chatbot-page .chatbot-view:hover{
	border-color:var(--cx-accent); background:var(--al-card); color:var(--cx-accent); box-shadow:none;
}
/* 페이징 바 */
body.catx-on #admin-chatbot-page .chatbot-pagination{
	min-height:46px; padding:7px 8px;
	border-top:1px solid var(--al-line); background:var(--al-card);
}
@media (max-width:992px){
	body.catx-on #admin_wrap .admin_main_wrap:has(#admin-chatbot-page){
		height:auto !important; min-height:0 !important; overflow:visible !important;
	}
	body.catx-on #admin-chatbot-page{
		height:auto !important; min-height:0 !important; overflow:visible !important;
		padding:0 12px 72px !important;
	}
	body.catx-on #admin-chatbot-page > .chatbot-card.chatbot-toolbar{
		margin:0 -12px 10px; padding:12px 12px 10px;
	}
	body.catx-on #admin-chatbot-page .chatbot-toolbar h2{ font-size:19px; }
	body.catx-on #admin-chatbot-page .chatbot-toolbar p{ font-size:var(--dash-font-12, 12px); }
	body.catx-on #admin-chatbot-page .chatbot-card.chatbot-table-wrap{
		border:0; border-radius:0; background:transparent; box-shadow:none; overflow:visible;
	}
	body.catx-on #admin-chatbot-page .chatbot-pagination{
		position:fixed; left:0; right:0; bottom:0; z-index:2000;
		margin:0; padding:7px 8px max(7px,env(safe-area-inset-bottom));
		box-shadow:0 -2px 8px rgba(0,0,0,.08); box-sizing:border-box;
	}
	body.catx-on.catx-modal-vis #admin-chatbot-page .chatbot-pagination{ z-index:1000; }
}

/* ── [모바일] 문서 스크롤이 먹지 않던 원인 해제 ─────────────────────────────
 * 공용 헤더 스크립트(include/admin_header.php)가 좁은 폭에서 본문 래퍼에
 *   $('.admin_main_wrap').css({width:winW-40, position:'absolute', top:0, left:'40px'})
 * 를 인라인으로 넣는다. 본문이 문서 흐름에서 빠지면 #admin_wrap 이 내용 높이를
 * 갖지 못해 문서가 늘어나지 않고, 결국 페이지가 스크롤되지 않는다.
 * (기존 화면들은 '본문 내부 스크롤' 구조라 드러나지 않던 문제다.)
 * 인라인은 !important 가 아니므로 CSS 의 !important 로 되돌린다.
 * 표준 적용 페이지에만 건다 — 다른 화면의 기존 동작은 그대로 둔다. */
@media (max-width:992px){
	/* #admin_wrap 을 화면 높이 만큼의 세로 flex 로 만들고, 본문 래퍼가 그 안에서
	 * 스크롤하게 한다(= 고객 목록 모바일과 같은 '본문 내부 스크롤' 구조).
	 * - #admin_wrap 인라인 padding-top 은 상단바 실측값 → box-sizing:border-box 로
	 *   포함시키면 상단바 높이를 코드에 적지 않아도 정확히 남는 영역만 채운다.
	 * - 상단바(.catx-topbar)와 드로어(header.style_admin_category)는 둘 다
	 *   position:fixed 라 flex 항목이 아니다 → 이 구조가 안전하다.
	 * - 본문 래퍼는 position:relative 로 되돌려, 공용 스크립트가 넣는 인라인
	 *   position:absolute(문서 흐름 이탈 → 스크롤 불가)를 무력화한다. */
	body.catx-on #admin_wrap:has(.adminlist-std),
	body.catx-on #admin_wrap:has(.admin_request_wrap),
	body.catx-on #admin_wrap:has(.catx-platform-list),
	body.catx-on #admin_wrap:has(#admin-chatbot-page){
		display:flex !important; flex-direction:column !important;
		height:100vh !important; height:100dvh !important;
		min-height:0 !important; max-height:100dvh !important;
		overflow:hidden !important; box-sizing:border-box !important;
	}
	body.catx-on #admin_wrap .admin_main_wrap:has(.adminlist-std),
	body.catx-on #admin_wrap .admin_main_wrap:has(.admin_request_wrap),
	body.catx-on #admin_wrap .admin_main_wrap:has(.catx-platform-list),
	body.catx-on #admin_wrap .admin_main_wrap:has(#admin-chatbot-page){
		position:relative !important;
		top:auto !important; right:auto !important; bottom:auto !important; left:auto !important;
		float:none !important; flex:1 1 auto !important;
		width:auto !important; max-width:100% !important;
		height:auto !important; min-height:0 !important; margin:0 !important;
		overflow-y:auto !important; overflow-x:hidden !important;
		-webkit-overflow-scrolling:touch;
		box-sizing:border-box !important;
	}
}

/* [모바일 매물목록] 필터·검색 버튼을 정사각형으로.
 * 높이는 29px 으로 묶었는데 폭은 좌우 패딩(10px)에서 나와 가로로 더 길었다. */
@media (max-width:992px){
	body.catx-on .admin_itemList .item_header_mobile .mobile_search_btn,
	body.catx-on .admin_itemList .item_header_mobile .admin_search_group .btn_search,
	body.catx-on .admin_itemList .item_header_mobile .admin_search_group .input-group .btn-default{
		width:29px !important; min-width:29px !important; max-width:29px !important;
		flex:0 0 29px !important;
		padding-left:0 !important; padding-right:0 !important;
		display:inline-flex !important; align-items:center !important; justify-content:center !important;
		box-sizing:border-box !important;
	}
	body.catx-on .admin_itemList .item_header_mobile .mobile_search_btn i,
	body.catx-on .admin_itemList .item_header_mobile .admin_search_group .btn_search i,
	body.catx-on .admin_itemList .item_header_mobile .admin_search_group .input-group .btn-default i{
		margin:0 !important; float:none !important;
	}
}

/* [모바일 매물목록] 검색줄: 한 줄에 두 칸을 반반으로.
 * admin_item_v2.php:3822/3829 가 .input-group 에 인라인 float:left 을, 370-371 이
 * 245px / 150px 고정 폭을 줘 화면 폭과 상관없이 짧게 끝난다.
 * 주의: .input-group 은 .admin_search_group 의 직접 자식이다(중간 div 없음).
 * 다른 마크업 변형(중간 래퍼 div)까지 같은 행에 두려고 display:contents 를 쓴다. */
@media (max-width:992px){
	body.catx-on .admin_itemList .item_header_mobile .admin_search_group{
		display:flex !important; flex-wrap:nowrap !important; align-items:center !important;
		gap:6px !important; width:100% !important; float:none !important;
		/* 윗줄(개수·정렬·필터·매물등록)과 간격.
		 * margin 은 레거시 float/상쇄 영향으로 듣지 않아 padding 으로 들어올린다. */
		margin-top:0 !important; padding-top:5px !important; box-sizing:border-box !important;
	}
	body.catx-on .admin_itemList .item_header_mobile .admin_search_group > div:not(.input-group){
		display:contents !important;
	}
	body.catx-on .admin_itemList .item_header_mobile .admin_search_group .input-group{
		flex:1 1 0 !important; width:auto !important; min-width:0 !important;
		float:none !important; margin:0 !important;
		display:flex !important; align-items:center !important;
	}
	body.catx-on .admin_itemList .item_header_mobile .admin_search_group .input-group > .form-control{
		flex:1 1 auto !important; width:1% !important; min-width:0 !important;
	}
	body.catx-on .admin_itemList .item_header_mobile .admin_search_group .input-group > .input-group-btn{
		flex:0 0 auto !important; width:auto !important;
	}
}

/* [모바일 매물목록] 복원 버튼은 삭제(빨강)과 구분되게 강조색 계열로. */
body.catx-on .item_table_mobile .cxmab-btn.cxmab-restore{
	color:var(--cx-accent) !important;
	border-color:color-mix(in oklab, var(--cx-accent) 35%, var(--cx-line)) !important;
}
body.catx-on .item_table_mobile .cxmab-btn.cxmab-restore:hover{
	background:var(--cx-accent) !important; border-color:var(--cx-accent) !important; color:#fff !important;
}

/* [모바일 매물목록] 복원·삭제 버튼 가로 폭을 같게.
 * 삭제는 인라인 SVG(11px), 복원은 원본 폰트어썼 아이콘이라
 * 아이콘 폭이 달라 버튼 폭까지 벌어졌다. 아이콘 박스를 맞추고 최소폭도 고정한다. */
body.catx-on .item_table_mobile .cxmab-btn.cxmab-restore > i{
	display:inline-block !important; width:11px !important; height:11px !important;
	margin:0 !important; font-size:var(--dash-font-11, 11px) !important; line-height:11px !important; text-align:center !important;
}
body.catx-on .item_table_mobile .cxmab-btn.cxmab-restore,
body.catx-on .item_table_mobile .cxmab-btn.cxmab-edit,
body.catx-on .item_table_mobile .cxmab-btn.cxmab-del{
	min-width:52px !important; justify-content:center !important;
	padding-left:8px !important; padding-right:8px !important;
}

/* [모바일 매물목록] 자체관리번호 검색 버튼 색을 PC 와 동일하게.
 * PC(.item_header_pc .btn.btn-default)는 #d6336c, 모바일은 var(--cx-red) 이라 달랐다. */
@media (max-width:992px){
	body.catx-on .admin_itemList .item_header_mobile .admin_search_group .input-group .btn-default{
		background:#d6336c !important; border-color:#d6336c !important; color:#fff !important;
	}
}

/* [모바일 고객 목록] 도구 영역 슬림화.
 * 필터·고객등록·검색이 44px 이라 과하고 개수 배지(36px)와도 높이가 안 맞았다.
 * 모두 36px 으로 맞추고 배지 안쪽 여백도 같은 값으로 고정. */
@media (max-width:992px){
	body.catx-on #admin_wrap .admin_main_wrap:has(.owner-page-tabs) .top_fixed .badge_whole_num{
		display:inline-flex !important; align-items:center !important; justify-content:center !important;
		height:36px !important; min-height:36px !important;
		padding:0 12px !important; font-size:13px !important; line-height:1 !important;
	}
	body.catx-on #admin_wrap .admin_main_wrap:has(.owner-page-tabs) .top_fixed .badge_whole_num .all_cnt{ font-size:14px !important; }
	body.catx-on #admin_wrap .admin_main_wrap:has(.owner-page-tabs) .top_fixed .item_header_R .mobile_search_btns,
	body.catx-on #admin_wrap .admin_main_wrap:has(.owner-page-tabs) .top_fixed .item_header_R .btn_member_add{
		height:36px !important; min-height:36px !important; min-width:52px !important;
		padding:0 10px !important; font-size:13px !important;
	}
	body.catx-on #admin_wrap .admin_main_wrap:has(.owner-page-tabs) .top_fixed .search_input input{
		height:36px !important; padding:0 10px !important; font-size:14px !important;
	}
	/* 필터 버튼도 강조색으로(기존 #0557FE 하드코딩) */
	body.catx-on #admin_wrap .admin_main_wrap:has(.owner-page-tabs) .top_fixed .item_header_R .mobile_search_btns{
		border-color:var(--cx-accent) !important; color:var(--cx-accent) !important;
		background:var(--al-card,#fff) !important;
	}
	body.catx-on #admin_wrap .admin_main_wrap:has(.owner-page-tabs) .top_fixed .item_header_R .mobile_search_btns:hover,
	body.catx-on #admin_wrap .admin_main_wrap:has(.owner-page-tabs) .top_fixed .item_header_R .mobile_search_btns.on{
		background:var(--cx-accent) !important; border-color:var(--cx-accent) !important; color:#fff !important;
	}
	body.catx-on #admin_wrap .admin_main_wrap:has(.owner-page-tabs) .top_fixed .search_input button{
		width:40px !important; height:36px !important;
	}
}

/* 발급 이력(건축물대장 / 등기부등본) — 다른 목록 화면과 맞춤.
 * 제목 띠와 내부 패딩 10px 은 위쪽 .cx-issued-history 블록에 이미 있고,
 * 여기서는 배경색과 개수 배지만 맞춘다. */
body.catx-on #admin_wrap .admin_main_wrap:has(.cx-issued-history),
body.catx-on .cx-issued-history{
	background: var(--cx-page-solid) !important;
}
/* 개수 — accent 알약 배지(흰 글자, 숫자는 굵게). 회원/고객 목록과 동일. */
body.catx-on .cx-issued-history .top_fixed .badge.main_color{
	display:inline-flex !important; align-items:center !important;
	height:32px !important; min-height:32px !important;
	padding:0 12px !important; margin:0 !important;
	border:0 !important; border-radius:7px !important;
	background: var(--cx-accent) !important;
	color:#fff !important;
	font-size:13px !important; font-weight:normal !important; line-height:1 !important;
	white-space:nowrap !important; box-shadow:none !important;
}
body.catx-on .cx-issued-history .top_fixed .badge.main_color i{
	color:#fff !important;
}
body.catx-on .cx-issued-history .top_fixed .badge.main_color .all_cnt{
	margin:0 2px 0 4px !important;
	color:#fff !important;
	font-family:'NotoSansKR-Bold' !important;
	font-size:15px !important; font-weight:normal !important;
}

/* 발급 이력: 제목 띠가 화면 끝까지 닿게.
 * .cx-issued-heading 의 음수 여백(-10px)은 섹션 자체 패딩만 상쇄하고,
 * 바깥 .admin_main_wrap 의 좌우 패딩은 그대로 남아 띠 좌우에 여백이 보였다.
 * 래퍼의 좌우 패딩만 0 으로 두고, 안쪽 여백 10px 은 섹션이 계속 담당한다. */
body.catx-on #admin_wrap .admin_main_wrap:has(.cx-issued-history){
	padding-left:0 !important; padding-right:0 !important;
}

/* 발급 이력 PC: 페이징을 화면 하단에 고정하고 표만 안에서 스크롤.
 * .admin_main_wrap 은 이미 높이가 잡혀 있으므로(admin_header.css: height:100%),
 * 거기서부터 .table_top_wrap 까지 세로 flex 로 이어 주기만 하면 된다.
 * #admin_wrap 이나 래퍼 높이는 건드리지 않는다. */
@media (min-width:993px){
	body.catx-on #admin_wrap .admin_main_wrap:has(.cx-issued-history){
		overflow:hidden !important;
	}
	body.catx-on .cx-issued-history{
		display:flex !important; flex-direction:column !important;
		height:100% !important; min-height:0 !important; overflow:hidden !important;
	}
	body.catx-on .cx-issued-history > .container-fluid{
		display:flex !important; flex-direction:column !important;
		flex:1 1 auto !important; min-height:0 !important; overflow:hidden !important;
	}
	body.catx-on .cx-issued-history .cx-issued-heading,
	body.catx-on .cx-issued-history .top_fixed{
		flex:0 0 auto !important;
	}
	body.catx-on .cx-issued-history .table-responsive{
		display:flex !important; flex-direction:column !important;
		flex:1 1 auto !important; min-height:0 !important; height:auto !important;
		margin:10px 0 0 !important; overflow:hidden !important;
	}
	body.catx-on .cx-issued-history .table-responsive > #list_box{
		display:flex !important; flex-direction:column !important;
		flex:1 1 auto !important; min-height:0 !important; height:auto !important;
		overflow:hidden !important;
	}
	/* 실제로 스크롤되는 곳 — 표 한 곳 */
	body.catx-on .cx-issued-history .table_top_wrap{
		flex:1 1 auto !important; min-height:0 !important; height:auto !important;
		overflow-y:auto !important;
	}
	/* 페이징 바 — 항상 맨 아랫줄 */
	body.catx-on .cx-issued-history .table-responsive > .text-center{
		flex:0 0 auto !important; margin:0 !important;
		padding:10px 12px !important;
		background:#fff !important; border-top:1px solid #e4eaf3 !important;
	}
}

/* 발급 이력 PC: 키워드 검색창은 필요한 만큼만 쓰고, 발급 버튼은 오른쪽 끝에.
 * .input-group 안에 [입력 + 돋보기 + 발급 버튼]이 함께 들어 있어
 * 그대로 두면 입력칸이 남는 폭을 전부 차지했다. */
@media (min-width:993px){
	body.catx-on .cx-issued-history .top_fixed .input-group{
		display:flex !important; align-items:center !important;
		flex:1 1 auto !important; gap:0 !important;
	}
	body.catx-on .cx-issued-history .top_fixed .input-group > .form-control{
		flex:0 0 320px !important; width:320px !important; max-width:320px !important;
	}
	body.catx-on .cx-issued-history .top_fixed .input-group > .input-group-btn{
		flex:0 0 auto !important; margin:0 !important;
	}
	body.catx-on .cx-issued-history .top_fixed .input-group > .arch_issued_btn{
		flex:0 0 auto !important; margin:0 0 0 auto !important;
	}
}

/* 발급 이력: 좌우 여백이 두 겹이었다(실측).
 *   section.cx-issued-history  padding 0 10px
 *   > .container-fluid         padding 0 10px   ← 이 한 겹이 더 붙어 있었다
 * 제목 띠의 margin 0 -10px 은 한 겹만 상쇄해서 띠가 화면 끝에 닿지 않았다.
 * 컨테이너의 좌우 패딩을 없애면 섹션의 10px 한 겹만 남아,
 * 본문은 10px 안쪽 · 제목 띠는 화면 끝까지가 된다. */
body.catx-on .cx-issued-history > .container-fluid{
	padding-left:0 !important; padding-right:0 !important;
}

/* 발급 이력: 제목 띠를 확실히 전폭으로.
 * 지금까지는 섹션/컨테이너의 좌우 패딩을 제목 띠의 음수 여백으로 상쇄했는데,
 * 패딩이 두 겹이라 계속 어긋났다. 상쇄를 없앤다 —
 * 바깥(섹션·컨테이너)은 좌우 패딩 0, 안쪽 블록(툴바·목록)에만 10px 을 준다.
 * 제목 띠는 음수 여백 없이 그대로 두면 화면 끝까지 닿는다. */
body.catx-on .cx-issued-history{
	padding-left:0 !important; padding-right:0 !important;
}
body.catx-on .cx-issued-history > .container-fluid{
	padding-left:0 !important; padding-right:0 !important;
}
body.catx-on .cx-issued-history .cx-issued-heading{
	margin-left:0 !important; margin-right:0 !important;
	padding-left:18px !important; padding-right:18px !important;
}
body.catx-on .cx-issued-history .top_fixed,
body.catx-on .cx-issued-history .table-responsive{
	margin-left:10px !important; margin-right:10px !important;
}

/* 발급 이력: 키워드 검색 = 입력칸 + accent 돋보기 버튼 한 덩어리,
 * 발급 버튼은 그 바로 오른쪽(왼쪽 묶음)에 붙인다. */
@media (min-width:993px){
	body.catx-on .cx-issued-history .top_fixed .input-group > .form-control{
		height:34px !important;
		padding:0 10px !important;
		border:1px solid var(--cx-line2) !important;
		border-right:0 !important;
		border-radius:7px 0 0 7px !important;
		background:#fff !important;
		font-size:13px !important;
		box-shadow:none !important;
	}
	body.catx-on .cx-issued-history .top_fixed .input-group > .input-group-btn > .btn{
		display:inline-flex !important;
		align-items:center !important; justify-content:center !important;
		width:38px !important; height:34px !important; min-height:34px !important;
		margin:0 !important; padding:0 !important;
		border:1px solid var(--cx-accent) !important;
		border-radius:0 7px 7px 0 !important;
		background:var(--cx-accent) !important;
		color:#fff !important;
		box-shadow:none !important;
	}
	body.catx-on .cx-issued-history .top_fixed .input-group > .input-group-btn > .btn i{
		color:#fff !important;
	}
	/* 발급 버튼: 오른쪽 끝으로 밀지 않고 검색창 바로 옆에 둔다. */
	body.catx-on .cx-issued-history .top_fixed .input-group > .arch_issued_btn{
		margin:0 0 0 10px !important;
	}
}

/* 발급 이력 PC: [개수] 왼쪽 / [키워드 검색 + 발급 버튼] 오른쪽.
 * 검색과 발급 버튼은 같은 .input-group 안에 있으므로 그 묶음을 통째로 민다. */
@media (min-width:993px){
	body.catx-on .cx-issued-history .top_fixed .input-group{
		flex:0 0 auto !important;
		width:auto !important;
		margin:0 0 0 auto !important;
	}
}

/* 로그·방문기록 목록: 제목 영역을 상단바 바로 아래 전폭 흰 띠로.
 * 이 화면들은 원래 제목이 없어 새로 넣었다(admin_log.php / visitlist.php).
 * 크기·여백은 위쪽 .adminlist-std-head 규칙(제목 22px / 설명 13px / padding 14px 18px)을
 * 그대로 쓰고, 여기서는 위치만 잡는다. */
body.catx-on #admin_wrap .admin_main_wrap:has(> section > .adminlist-std-head){
	padding-top:0 !important; padding-left:0 !important; padding-right:0 !important;
}
body.catx-on .section_whole:has(> .adminlist-std-head){
	padding-top:0 !important;
}
body.catx-on .section_whole > .adminlist-std-head{
	margin:0 0 10px !important;
}

/* 관리자·직원·삭제된 관리자 목록: 페이지 배경을 대시보드와 같은 색으로.
 * 이 세 화면은 adminlist-std 적용 대상이 아니라 배경만 다른 목록과 달랐다.
 * (admin_member.php 에서 .catx-member-plain 을 붙인다) */
body.catx-on #admin_wrap .admin_main_wrap:has(.catx-member-plain){
	background: var(--cx-page-solid) !important;
}
body.catx-on .catx-member-plain{
	background: transparent !important;
}

/* 방문기록: 제목 띠를 그리드 첫 줄 전폭으로.
 * 이 화면은 .container-fluid 가 격자(제목 / 툴바 / 목록+순위)라
 * 제목이 그 첫 줄에 있어야 아래 행 배치가 맞는다.
 * .visit-category-page 의 안쪽 여백 20px 만큼 음수 여백을 줘 화면 끝까지 편다. */
body.catx-on .visit-category-page .container-fluid > .adminlist-std-head{
	grid-column:1 / -1;
	margin:0 -20px 0 !important;
	padding:14px 18px !important;
	background:#fff !important;
	border-bottom:1px solid #e8edf3 !important;
}

/* 로그 목록: 키워드 검색 버튼 둘레에 남아 있던 어두운 테두리 제거 */
body.catx-on .log-category-page #formSearch .input-group-btn,
body.catx-on .log-category-page #formSearch .input-group-btn > .btn,
body.catx-on .log-category-page #formSearch button{
	border:0 !important;
	outline:0 !important;
	box-shadow:none !important;
}

/* 로그 목록: 개수 배지를 다른 목록과 같은 accent 알약으로(파랑 배경 + 흰 글자) */
body.catx-on .log-category-page #formSearch > .badge.main_color{
	display:inline-flex !important; align-items:center !important;
	height:32px !important; min-height:32px !important;
	padding:0 12px !important; margin:0 !important;
	border:0 !important; border-radius:7px !important;
	background: var(--cx-accent) !important;
	color:#fff !important;
	font-size:13px !important; font-weight:normal !important; line-height:1 !important;
	white-space:nowrap !important; box-shadow:none !important;
}
body.catx-on .log-category-page #formSearch > .badge.main_color i{
	color:#fff !important;
}
body.catx-on .log-category-page #formSearch > .badge.main_color .all_cnt{
	margin:0 2px 0 4px !important;
	color:#fff !important;
	font-family:'NotoSansKR-Bold' !important;
	font-size:15px !important; font-weight:normal !important;
}

/* 방문기록: 제목 띠가 위로 잘리던 것 — .visit-category-page 가 overflow:hidden 이라
 * 음수 상단 여백이 그대로 잘렸다. 위 패딩을 없애고 띠는 좌우로만 펴 준다. */
body.catx-on #admin_wrap .visit-category-page{
	padding-top:0 !important;
}
/* 방문기록: 오른쪽 키워드 검색칸이 좁게 눌리던 것 고정 */
body.catx-on .visit-category-page #form_request_search .input-group:last-child{
	flex:0 0 320px !important;
	width:320px !important;
	min-width:320px !important;
}

/* AI 고객 상담: 검색·설정·새로고침을 제목 줄이 아니라 탭 줄 오른쪽에 둔다.
 * (admin_chatbot.php 에서 .chatbot-tabrow 로 탭과 함께 감쌌다) */
body.catx-on #admin-chatbot-page .chatbot-tabrow{
	display:flex !important; align-items:center !important;
	flex-wrap:wrap !important; gap:12px !important;
	width:100% !important;
	/* 다른 화면의 툴바처럼 흰 카드로 감싼다(.chatbot-card 과 같은 모양). */
	margin:0 0 12px !important;
	padding:7px 12px !important;
	background:#fff !important;
	border:1px solid #e2e8f2 !important;
	border-radius:12px !important;
	box-shadow:0 4px 14px rgba(26,45,80,.06) !important;
	box-sizing:border-box !important;
}
body.catx-on #admin-chatbot-page .chatbot-tabrow > .chatbot-tabs{
	flex:0 1 auto !important;
	padding:0 !important;
	margin:0 !important;
}
body.catx-on #admin-chatbot-page .chatbot-tabrow > .chatbot-actions{
	display:flex !important; align-items:center !important;
	flex:0 0 auto !important; gap:8px !important;
	margin:0 0 0 auto !important;
}

/* AI 고객 상담: 탭 줄 카드가 세로로 두꺼워 보여 여백을 줄인다. */
body.catx-on #admin-chatbot-page .chatbot-tabrow{
	gap:8px 12px !important;
	margin:0 0 10px !important;
}
body.catx-on #admin-chatbot-page .chatbot-tabrow .chatbot-tab{
	padding:6px 12px !important;
	line-height:1.3 !important;
}

/* AI 고객 상담: 카드가 계속 두꺼웠던 이유 —
 * 동작 버튼 묶음이 .chatbot-toolbar 클래스를 함께 갖고 있어
 * 그 규칙의 padding:18px 22px / margin-bottom:14px 가 카드 안에서 그대로 먹었다.
 * (클래스는 .chatbot-refresh 등 자식 스타일이 의존하므로 두고 여백만 지운다) */
body.catx-on #admin-chatbot-page .chatbot-tabrow > .chatbot-actions{
	padding:0 !important;
	margin:0 0 0 auto !important;
}

/* 의뢰 계열 6화면(의뢰·상담신청·전화시도·투어신청·내 집 요청/삭제 목록):
 * 페이지 배경을 대시보드와 같은 색으로. 이 계열만 골라내려고 .request-heading 을
 * 기준으로 삼는다(권리분석·발급 이력도 .admin_request_wrap 을 쓰지만 이 제목은 없다). */
body.catx-on #admin_wrap .admin_main_wrap:has(.admin_request_wrap .request-heading){
	background: var(--cx-page-solid) !important;
}
body.catx-on .admin_request_wrap:has(.request-heading){
	background: transparent !important;
}


/* 의뢰 계열: 건수를 제목 옆이 아니라 툴바 맨 왼쪽에 '전체 N건' 으로 둔다.
 * (제목에서 떼어내 .request-toolbar 첫 항목으로 옮겼다) */
body.catx-on .admin_request_wrap .request-toolbar > .request-count{
	order:-1;
	display:inline-flex; align-items:center;
	flex:0 0 auto;
	height:36px; padding:0 12px; margin:0 8px 0 0;
	border:0; border-radius:7px;
	background:var(--cx-accent); color:#fff;
	font-size:13px; font-weight:normal; line-height:1;
	white-space:nowrap;
}
body.catx-on .admin_request_wrap .request-toolbar > .request-count .all_cnt{
	margin:0 2px 0 4px;
	color:#fff;
	font-family:'NotoSansKR-Bold';
	font-size:15px; font-weight:normal;
}

/* 의뢰 계열: 제목 띠가 화면 끝까지 닿게.
 * .request-heading 의 음수 여백(-10px)은 .container-fluid 패딩만 상쇄하고,
 * 바깥 .admin_main_wrap 의 20px 패딩은 그대로 남아 띠 좌우·위에 여백이 보였다.
 * 래퍼 패딩을 0 으로 두고 안쪽 여백은 .container-fluid 의 10px 이 담당한다. */
body.catx-on #admin_wrap .admin_main_wrap:has(.admin_request_wrap .request-heading){
	padding-top:0 !important;
	padding-left:0 !important;
	padding-right:0 !important;
}

/* 내 집 요청 목록: 목록 구분 탭을 제목 줄 오른쪽으로.
 * 모양은 고객 목록(admin_member?type=owner)의 .owner-page-tabs 와 동일하게 —
 * 밝은 트랙 안에 알약 버튼, 선택된 것만 accent 로 채운다.
 * (admin_find_list.php 에서 nav.find-tabs 를 header.request-heading 안으로 옮겼다) */
body.catx-on .admin_find_wrap .request-heading{
	gap:12px;
}
body.catx-on .admin_find_wrap .request-heading > .find-tabs{
	display:inline-flex; align-items:center;
	flex:0 0 auto;
	gap:4px;
	margin:0 0 0 auto;
	padding:4px;
	border:1px solid #dfe5ec;
	border-radius:9px;
	background:#f6f8fb;
}
body.catx-on .admin_find_wrap .request-heading > .find-tabs > a{
	/* 굵기가 다른 글꼴(Medium/Bold)이 line-height 기준으로는 세로로 어긋나서
	 * flex 가운데 정렬로 고정한다. */
	display:inline-flex;
	align-items:center;
	justify-content:center;
	min-width:82px;
	height:32px;
	padding:0 12px;
	border:0;
	border-radius:6px;
	background:transparent;
	color:#657388;
	font-family:'NotoSansKR-Medium';
	font-size:13px;
	font-weight:normal;
	line-height:1;
	text-align:center;
	white-space:nowrap;
	text-decoration:none;
}
body.catx-on .admin_find_wrap .request-heading > .find-tabs > a:hover{
	color:var(--cx-accent); background:#fff;
}
body.catx-on .admin_find_wrap .request-heading > .find-tabs > a[aria-current]{
	color:#fff;
	background:var(--cx-accent);
	font-family:'NotoSansKR-Bold';
	box-shadow:0 2px 6px rgba(5,87,254,.2);
}

@media (min-width:993px){
/* 플랫폼 목록(받은/보낸 쪽지함, 매물 문의): 툴바 오른쪽 묶음을 화면 오른쪽 끝으로.
 * 마크업은 .fl(왼쪽) / .fr(오른쪽) 플로트 구조인데 catx 에서 .top_fixed 가
 * flex 가 되면서 float 이 무시돼 오른쪽 묶음이 가운데에 붙어 있었다. */
body.catx-on .catx-platform-list .top_fixed{
	display:flex !important;
	align-items:center !important;
	flex-wrap:wrap !important;
	gap:8px 12px !important;
}
body.catx-on .catx-platform-list .top_fixed > .fl.pc_only{
	display:flex !important; align-items:center !important;
	flex:0 0 auto !important; float:none !important; gap:8px 12px !important;
}
body.catx-on .catx-platform-list .top_fixed > .fr.top_filter{
	float:none !important;
	flex:0 0 auto !important;
	margin:0 0 0 auto !important;
}
body.catx-on .catx-platform-list .top_fixed > .fr.top_filter > form{
	display:flex !important; align-items:center !important;
	flex-wrap:wrap !important; gap:8px !important;
	float:none !important; margin:0 !important;
}
body.catx-on .catx-platform-list .top_fixed > .fr.top_filter > form > .fl{
	float:none !important; margin:0 !important;
}
}

/* 목록 페이징 바: 위아래 여백이 안 맞던 것.
 * 쪽번호 li 가 인라인 요소라 글꼴 베이스라인 아래 여유 공간(descender)이 생겨
 * 아래쪽만 더 벌어져 보였다. ul 을 flex 로 두고 line-height 를 1 로 고정한다. */
body.catx-on .adminlist-std #list_box > .text-center > ul:is(.pagination,.pagination-sm,.customer_pagination,.pagination_meeting){
	display:flex !important;
	align-items:center !important;
	justify-content:center !important;
	flex-wrap:wrap !important;
	gap:6px !important;
	margin:0 !important;
	padding:0 !important;
	line-height:1 !important;
}
body.catx-on .adminlist-std #list_box > .text-center > ul > li{
	display:block !important;
	float:none !important;
	margin:0 !important;
	padding:0 !important;
	line-height:1 !important;
}

/* AI 고객 상담 모바일 정리 */
@media (max-width:768px){
	/* 1) 키워드 검색바가 카드 밖으로 잘리던 것 — 고정 폭 대신 한 줄 전체를 쓴다. */
	body.catx-on #admin-chatbot-page .chatbot-tabrow > .chatbot-tabs{
		flex:1 1 100% !important; width:100% !important;
		flex-wrap:nowrap !important; overflow-x:auto !important;
		scrollbar-width:none;
	}
	body.catx-on #admin-chatbot-page .chatbot-tabrow > .chatbot-tabs::-webkit-scrollbar{ display:none; }
	body.catx-on #admin-chatbot-page .chatbot-tabrow > .chatbot-actions{
		flex:1 1 100% !important; width:100% !important;
		margin:0 !important; flex-wrap:wrap !important; gap:8px !important;
	}
	body.catx-on #admin-chatbot-page .chatbot-tabrow .chatbot-search{
		flex:1 1 100% !important; width:100% !important; min-width:0 !important;
	}
	body.catx-on #admin-chatbot-page .chatbot-tabrow .chatbot-search input{
		width:100% !important; min-width:0 !important; box-sizing:border-box !important;
	}
	/* 2) 목록 아래 빈 띠 — 모바일에서는 카드가 각자 흰 상자라 가로 스크롤 상자가
	 *    필요 없다. 그 상자의 스크롤 영역이 빈 띠로 보였다. */
	body.catx-on #admin-chatbot-page .chatbot-table-scroll{
		overflow:visible !important;
	}
	body.catx-on #admin-chatbot-page .chatbot-table tbody tr:last-child{
		margin-bottom:0 !important;
	}
}

/* 내 집 요청 목록 모바일: 제목 줄에 탭을 넣으면서 제목 칸이 눌려
 * 글자가 한 자씩 세로로 접히던 것. 좁은 폭에서는 제목·탭을 위아래로 나눈다. */
@media (max-width:991px){
	body.catx-on .admin_find_wrap .request-heading{
		display:flex !important;
		flex-wrap:wrap !important;
		align-items:center !important;
		gap:8px 10px !important;
	}
	body.catx-on .admin_find_wrap .request-heading > div{
		flex:1 1 100% !important;
		min-width:0 !important;
	}
	body.catx-on .admin_find_wrap .request-heading > .request-guide{
		flex:0 0 auto !important;
		margin-left:auto !important;
	}
	body.catx-on .admin_find_wrap .request-heading > .find-tabs{
		flex:1 1 100% !important;
		width:100% !important;
		margin:0 !important;
		box-sizing:border-box !important;
	}
	body.catx-on .admin_find_wrap .request-heading > .find-tabs > a{
		flex:1 1 0 !important;
		min-width:0 !important;
	}
}

/* 플랫폼 목록 모바일: 툴바를 한 줄로 정리한다.
 * PC 전용 정렬 규칙이 .pc_only 까지 보이게 만들어 개수 배지가 두 번 나오고
 * 필터가 세로로 길게 늘어져 있었다. */
@media (max-width:992px){
	body.catx-on .catx-platform-list .top_fixed > .fl.pc_only{
		display:none !important;
	}
	body.catx-on .catx-platform-list .top_fixed{
		display:flex !important; align-items:center !important;
		flex-wrap:wrap !important; gap:8px !important;
		padding:0 !important;
	}
	body.catx-on .catx-platform-list .top_fixed > .fr.top_filter{
		float:none !important; width:100% !important; margin:0 !important;
	}
	body.catx-on .catx-platform-list .top_fixed > .fr.top_filter > form{
		display:flex !important; align-items:center !important;
		flex-wrap:wrap !important; gap:8px !important;
		width:100% !important; float:none !important; margin:0 !important;
	}
	body.catx-on .catx-platform-list .top_fixed .fl{
		float:none !important; margin:0 !important;
	}
	/* 개수 배지는 알약 하나로 — 폭을 늘리지 않는다 */
	body.catx-on .catx-platform-list .top_fixed .fl_badge{
		flex:0 0 auto !important; width:auto !important;
	}
	body.catx-on .catx-platform-list .top_fixed .fl_badge .badge{
		display:inline-flex !important; align-items:center !important;
		width:auto !important; height:36px !important;
		padding:0 12px !important; margin:0 !important;
		border:0 !important; border-radius:7px !important;
		background:var(--cx-accent) !important; color:#fff !important;
		font-size:13px !important; line-height:1 !important; white-space:nowrap !important;
	}
	/* 셀렉트·검색칸은 남는 폭을 나눠 쓴다 */
	body.catx-on .catx-platform-list .top_fixed .custom_select{
		flex:1 1 140px !important; min-width:0 !important;
	}
	body.catx-on .catx-platform-list .top_fixed .custom_select select{
		width:100% !important; height:36px !important;
	}
	body.catx-on .catx-platform-list .top_fixed .input-group{
		flex:1 1 100% !important; min-width:0 !important; width:auto !important;
	}
	/* 쪽지쓰기 등 동작 버튼 */
	body.catx-on .catx-platform-list .top_fixed .btn_note_write,
	body.catx-on .catx-platform-list .top_fixed .fl > .btn{
		flex:0 0 auto !important; width:auto !important; height:36px !important;
		display:inline-flex !important; align-items:center !important; justify-content:center !important;
	}
}

/* ── 발급 이력(건축물대장/등기부등본) 모바일 ─────────────────────────────────
 * 열이 7~8개라 폰 폭에 표로 들어가지 않는다. 행 하나를 카드 하나로 접는다.
 * 두 화면의 앞 6열은 동일하다(NO/매물번호/건물구분/주소/발급인/발급일).
 * 7열 이후는 화면마다 달라(재발급 / 상태·비고) 묶어서 아래 줄에 둔다. */
@media (max-width:992px){
	/* 제목·툴바 */
	body.catx-on .cx-issued-history .cx-issued-heading{ padding:12px 12px 10px !important; }
	body.catx-on .cx-issued-history .cx-issued-heading h1{ font-size:19px !important; }
	body.catx-on .cx-issued-history .cx-issued-heading p{ font-size:var(--dash-font-12, 12px) !important; }
	body.catx-on .cx-issued-history .top_fixed{ padding:10px 12px !important; }
	body.catx-on .cx-issued-history .top_fixed .form-inline > form{
		display:flex !important; align-items:center !important;
		flex-wrap:wrap !important; gap:8px !important; width:100% !important;
	}
	body.catx-on .cx-issued-history .top_fixed .badge.main_color{ flex:0 0 auto !important; }
	body.catx-on .cx-issued-history .top_fixed .input-group{
		display:flex !important; align-items:center !important;
		flex-wrap:wrap !important; gap:8px 0 !important;
		width:100% !important; margin:0 !important;
	}
	body.catx-on .cx-issued-history .top_fixed .input-group > .form-control{
		flex:1 1 auto !important; width:auto !important; min-width:0 !important;
		border-radius:7px 0 0 7px !important;
	}
	body.catx-on .cx-issued-history .top_fixed .input-group > .input-group-btn{ flex:0 0 auto !important; }
	body.catx-on .cx-issued-history .top_fixed .input-group > .arch_issued_btn{
		flex:0 0 100% !important; width:100% !important; margin:0 !important;
	}

	/* 표 → 카드 (가로 스크롤 없음) */
	body.catx-on .cx-issued-history .table-responsive,
	body.catx-on .cx-issued-history .table_top_wrap{ overflow-x:hidden !important; }
	body.catx-on .cx-issued-history table.table_pc{
		display:block !important; width:100% !important; min-width:0 !important;
		table-layout:auto !important; margin:0 !important; border:0 !important; background:transparent !important;
	}
	body.catx-on .cx-issued-history table.table_pc colgroup,
	body.catx-on .cx-issued-history table.table_pc thead{ display:none !important; }
	body.catx-on .cx-issued-history table.table_pc tbody{ display:block !important; width:100% !important; }
	body.catx-on .cx-issued-history table.table_pc tbody tr{
		display:flex !important; flex-wrap:wrap !important; align-items:center !important;
		gap:4px 8px !important;
		width:100% !important; margin:0 0 8px !important; padding:12px !important;
		background:#fff !important; border:1px solid var(--cx-line2) !important; border-radius:10px !important;
	}
	body.catx-on .cx-issued-history table.table_pc tbody td{
		display:block !important; width:auto !important; max-width:100% !important; height:auto !important;
		padding:0 !important; border:0 !important; background:transparent !important;
		text-align:left !important; white-space:normal !important; word-break:break-word !important;
		font-size:var(--dash-font-12_5, 12.5px) !important; line-height:1.5 !important;
	}
	/* 주소 = 제목 / NO = 오른쪽 위 */
	body.catx-on .cx-issued-history table.table_pc tbody tr > td:nth-child(4){
		order:1 !important; flex:1 1 calc(100% - 48px) !important;
		color:var(--cx-strong) !important; font-family:'NotoSansKR-Bold' !important; font-size:14px !important;
	}
	body.catx-on .cx-issued-history table.table_pc tbody tr > td:nth-child(1){
		order:2 !important; flex:0 0 auto !important; margin-left:auto !important;
		color:var(--cx-sub) !important; font-size:var(--dash-font-12, 12px) !important;
	}
	/* 매물번호 · 건물구분 */
	body.catx-on .cx-issued-history table.table_pc tbody tr > td:nth-child(3){ order:3 !important; flex:0 0 auto !important; font-family:'NotoSansKR-Bold' !important; }
	body.catx-on .cx-issued-history table.table_pc tbody tr > td:nth-child(2){ order:4 !important; flex:0 0 auto !important; color:var(--cx-sub) !important; }
	/* 발급인 · 발급일 — 라벨을 붙여 한 줄씩 */
	body.catx-on .cx-issued-history table.table_pc tbody tr > td:nth-child(5){ order:5 !important; flex:0 0 100% !important; color:#5b6b7f !important; }
	body.catx-on .cx-issued-history table.table_pc tbody tr > td:nth-child(6){ order:6 !important; flex:0 0 100% !important; color:#5b6b7f !important; }
	body.catx-on .cx-issued-history table.table_pc tbody tr > td:nth-child(5)::before{ content:'발급인  '; color:#a0aec0; white-space:pre; }
	body.catx-on .cx-issued-history table.table_pc tbody tr > td:nth-child(6)::before{ content:'발급일  '; color:#a0aec0; white-space:pre; }
	/* 7열 이후(재발급 / 상태·비고) — 아래 줄에 나란히 */
	body.catx-on .cx-issued-history table.table_pc tbody tr > td:nth-child(n+7){
		order:7 !important; flex:1 1 auto !important; margin-top:6px !important;
	}
	body.catx-on .cx-issued-history table.table_pc tbody tr > td:nth-child(n+7) .btn,
	body.catx-on .cx-issued-history table.table_pc tbody tr > td:nth-child(n+7) a{
		width:100% !important; display:inline-flex !important;
		align-items:center !important; justify-content:center !important;
	}
	/* 결과 없음 */
	body.catx-on .cx-issued-history table.table_pc tbody tr > td[colspan]{
		flex:0 0 100% !important; text-align:center !important; color:#8a97a8 !important;
	}
}

/* 발급 이력 모바일 툴바 재배치:
 *   1줄 — [전체 N건] ............ [발급 버튼]
 *   2줄 — [키워드 입력 | 돋보기]  전체폭
 * 발급 버튼이 키워드와 같은 .input-group 안에 있어 그대로는 같은 줄에 못 둔다.
 * .input-group 을 display:contents 로 풀어 세 요소를 form 의 항목으로 만든 뒤
 * order 로 배치하고, 폭 100% 짜리 빈 항목으로 줄을 끊는다. */
@media (max-width:992px){
	body.catx-on .cx-issued-history .top_fixed .form-inline > form{
		gap:8px 0 !important;
	}
	body.catx-on .cx-issued-history .top_fixed .input-group{
		display:contents !important;
	}
	body.catx-on .cx-issued-history .top_fixed .badge.main_color{
		order:1 !important;
	}
	body.catx-on .cx-issued-history .top_fixed .input-group > .arch_issued_btn{
		order:2 !important;
		flex:0 0 auto !important; width:auto !important;
		height:32px !important; padding:0 12px !important;
		margin:0 0 0 auto !important;
		display:inline-flex !important; align-items:center !important; justify-content:center !important;
		font-size:var(--dash-font-12_5, 12.5px) !important; line-height:1 !important; white-space:nowrap !important;
		box-sizing:border-box !important;
	}
	body.catx-on .cx-issued-history .top_fixed .form-inline > form::after{
		content:'' !important; display:block !important; order:3 !important;
		flex:0 0 100% !important; width:100% !important; height:0 !important;
		margin:0 !important; padding:0 !important; border:0 !important; clear:none !important;
	}
	body.catx-on .cx-issued-history .top_fixed .input-group > .form-control{
		order:4 !important; flex:1 1 auto !important; width:auto !important; min-width:0 !important;
	}
	body.catx-on .cx-issued-history .top_fixed .input-group > .input-group-btn{
		order:5 !important; flex:0 0 auto !important;
	}
}

/* 발급 이력 모바일: 키워드 검색 버튼도 PC 와 같은 accent 색으로.
 * (앞서 넣은 규칙이 min-width:993px 안에 있어 모바일에는 적용되지 않았다) */
@media (max-width:992px){
	body.catx-on .cx-issued-history .top_fixed .input-group > .form-control{
		height:34px !important;
		padding:0 10px !important;
		border:1px solid var(--cx-line2) !important;
		border-right:0 !important;
		border-radius:7px 0 0 7px !important;
		background:#fff !important;
		font-size:13px !important;
		box-shadow:none !important;
	}
	body.catx-on .cx-issued-history .top_fixed .input-group > .input-group-btn > .btn{
		display:inline-flex !important;
		align-items:center !important; justify-content:center !important;
		width:38px !important; height:34px !important; min-height:34px !important;
		margin:0 !important; padding:0 !important;
		border:1px solid var(--cx-accent) !important;
		border-radius:0 7px 7px 0 !important;
		background:var(--cx-accent) !important;
		color:#fff !important;
		box-shadow:none !important;
	}
	body.catx-on .cx-issued-history .top_fixed .input-group > .input-group-btn > .btn i{
		color:#fff !important;
	}
}

/* 플랫폼 목록 모바일: 툴바를 한 줄에 담는다.
 * 앞서 준 flex-basis(140px)가 커서 세 줄로 접혔다 — 기준을 0 으로 바꾸고
 * 각 항목이 남는 폭을 나눠 쓰게 한다. */
@media (max-width:992px){
	body.catx-on .catx-platform-list .top_fixed > .fr.top_filter > form{
		flex-wrap:nowrap !important;
		gap:6px !important;
	}
	body.catx-on .catx-platform-list .top_fixed .fl_badge{ flex:0 0 auto !important; }
	body.catx-on .catx-platform-list .top_fixed .fl_badge .badge{
		height:34px !important; padding:0 10px !important; font-size:var(--dash-font-12, 12px) !important;
	}
	body.catx-on .catx-platform-list .top_fixed .custom_select{
		flex:1 1 0 !important; min-width:0 !important; width:auto !important;
	}
	body.catx-on .catx-platform-list .top_fixed .custom_select select{
		width:100% !important; min-width:0 !important;
		height:34px !important; padding:0 22px 0 8px !important;
		font-size:var(--dash-font-12_5, 12.5px) !important;
	}
	body.catx-on .catx-platform-list .top_fixed .btn_send{
		flex:0 0 auto !important; width:auto !important;
		height:34px !important; padding:0 10px !important;
		display:inline-flex !important; align-items:center !important; justify-content:center !important;
		font-size:var(--dash-font-12_5, 12.5px) !important; line-height:1 !important; white-space:nowrap !important;
	}
	body.catx-on .catx-platform-list .top_fixed .input-group{
		flex:1 1 0 !important; min-width:0 !important; width:auto !important;
	}
}

/* 플랫폼 목록 모바일 툴바 비율 보정.
 * nowrap 으로 강제하면서 셀렉트가 0 까지 눌려 버튼과 겹쳤다.
 * 다시 줄바꿈을 허용하되 각 항목에 최소 폭을 줘, 보통은 한 줄에 들어가고
 * 정말 좁을 때만 다음 줄로 넘어가게 한다. */
@media (max-width:992px){
	body.catx-on .catx-platform-list .top_fixed{
		width:100% !important;
	}
	body.catx-on .catx-platform-list .top_fixed > .fr.top_filter{
		flex:1 1 100% !important; width:100% !important;
	}
	body.catx-on .catx-platform-list .top_fixed > .fr.top_filter > form{
		flex-wrap:wrap !important;
		width:100% !important;
		gap:6px !important;
	}
	body.catx-on .catx-platform-list .top_fixed .custom_select{
		flex:1 1 96px !important;
		min-width:96px !important;
		width:auto !important;
	}
	body.catx-on .catx-platform-list .top_fixed .custom_select select{
		width:100% !important; min-width:0 !important;
	}
	body.catx-on .catx-platform-list .top_fixed .btn_send{
		padding:0 10px !important;
		min-width:0 !important;
	}
	body.catx-on .catx-platform-list .top_fixed .input-group{
		flex:1 1 140px !important; min-width:140px !important;
	}
}

/* ===== 실적 관리 · 급여 관리: 다른 목록 화면과 규칙 통일 =====
 * /admin_salary/perform (삭제 목록 포함), /admin_salary/salary
 *  1. 제목: 전폭 흰 띠 + 제목 22px / 설명 13px (모바일 19px / 12px)
 *  2. 배경: 대시보드와 같은 --cx-page-solid
 *  3. 제목 띠 제외 내부 패딩 10px (기존 18px)
 *  4. 개수: accent 알약 배지
 * 각 페이지의 perform_category_style.php / salary_category_style.php 보다
 * 뒤에 오지 않으므로 #admin_wrap 을 붙여 특이도를 올린다. */
/* 선택자 앞에 html 을 둔다: 이 화면에도 .admin_itemList 가 있어
 * 매물목록용 규칙(...:has(.admin_itemList){padding:14px!important})의
 * 특이도가 더 높아 패딩이 그대로 남았다(실측 14px). */
html body.catx-on #admin_wrap .admin_main_wrap:has(.perform-page),
html body.catx-on #admin_wrap .admin_main_wrap:has(.salary-page){
	background: var(--cx-page-solid) !important;
	padding-left:0 !important; padding-right:0 !important; padding-top:0 !important;
}
body.catx-on #admin_wrap #sec_wrap.perform-page,
body.catx-on #admin_wrap .salary-page{
	padding:0 10px 10px !important;
	gap:10px !important;
	background: var(--cx-page-solid) !important;
}
/* 제목 띠 — 좌우 패딩(10px)만큼 음수 여백으로 화면 끝까지 편다 */
body.catx-on #admin_wrap #sec_wrap.perform-page .perform-heading,
body.catx-on #admin_wrap .salary-page .salary-heading{
	display:block !important;
	margin:0 -10px 10px !important;
	padding:14px 18px !important;
	background:#fff !important;
	border-bottom:1px solid #e8edf3 !important;
	box-sizing:border-box !important;
}
body.catx-on #admin_wrap .perform-heading h1,
body.catx-on #admin_wrap .salary-heading h1{
	margin:0 !important;
	color:#172033 !important;
	font-family:'NotoSansKR-Bold' !important;
	font-size:22px !important;
	font-weight:normal !important;
	line-height:1.35 !important;
}
body.catx-on #admin_wrap .perform-heading p,
body.catx-on #admin_wrap .salary-heading p{
	margin:3px 0 0 !important;
	color:#718096 !important;
	font-size:13px !important;
	line-height:1.5 !important;
}
/* 개수 — accent 알약 배지 */
body.catx-on #admin_wrap .perform-page .item_num.badge,
body.catx-on #admin_wrap .salary-page .item_num.badge,
body.catx-on #admin_wrap .salary-page .badge.main_color{
	display:inline-flex !important; align-items:center !important;
	height:32px !important; min-height:32px !important;
	padding:0 12px !important; margin:0 !important;
	border:0 !important; border-radius:7px !important;
	background: var(--cx-accent) !important;
	color:#fff !important;
	font-size:13px !important; font-weight:normal !important; line-height:1 !important;
	white-space:nowrap !important; box-shadow:none !important;
}
body.catx-on #admin_wrap .perform-page .item_num.badge i,
body.catx-on #admin_wrap .salary-page .item_num.badge i,
body.catx-on #admin_wrap .salary-page .badge.main_color i{ color:#fff !important; }
body.catx-on #admin_wrap .perform-page .item_num.badge #all_cnt,
body.catx-on #admin_wrap .perform-page .item_num.badge .all_cnt,
body.catx-on #admin_wrap .salary-page .item_num.badge .all_cnt,
body.catx-on #admin_wrap .salary-page .badge.main_color .all_cnt{
	margin:0 2px 0 4px !important;
	color:#fff !important;
	font-family:'NotoSansKR-Bold' !important;
	font-size:15px !important; font-weight:normal !important;
}

@media (max-width:992px){
	body.catx-on #admin_wrap #sec_wrap.perform-page,
	body.catx-on #admin_wrap .salary-page{
		padding:0 10px 10px !important;
	}
	body.catx-on #admin_wrap #sec_wrap.perform-page .perform-heading,
	body.catx-on #admin_wrap .salary-page .salary-heading{
		margin:0 -10px 10px !important;
		padding:12px 12px 10px !important;
	}
	body.catx-on #admin_wrap .perform-heading h1,
	body.catx-on #admin_wrap .salary-heading h1{ font-size:19px !important; }
	body.catx-on #admin_wrap .perform-heading p,
	body.catx-on #admin_wrap .salary-heading p{ font-size:var(--dash-font-12, 12px) !important; }
}

/* 실적·급여 개수 배지: 페이지 전용 규칙
 *   body.catx-on #sec_wrap.perform-page .item_header_L .item_num{background:#eaf1ff!important}
 * 이 ID 를 포함해 특이도가 높다. 같은 형태(ID + 클래스)로 맞춰 확실히 이긴다. */
html body.catx-on #admin_wrap #sec_wrap.perform-page .item_header_L .item_num,
html body.catx-on #admin_wrap .perform-page .item_num.badge,
html body.catx-on #admin_wrap .salary-page .item_num.badge,
html body.catx-on #admin_wrap .salary-page .item_header_L .item_num{
	display:inline-flex !important; align-items:center !important;
	width:auto !important; min-width:0 !important;
	height:32px !important; min-height:32px !important;
	padding:0 12px !important; margin:0 !important;
	border:0 !important; border-radius:7px !important;
	background: var(--cx-accent) !important;
	color:#fff !important;
	font-size:13px !important; font-weight:normal !important; line-height:1 !important;
	white-space:nowrap !important; box-shadow:none !important;
}
html body.catx-on #admin_wrap #sec_wrap.perform-page .item_header_L .item_num *,
html body.catx-on #admin_wrap .perform-page .item_num.badge *,
html body.catx-on #admin_wrap .salary-page .item_num.badge *,
html body.catx-on #admin_wrap .salary-page .item_header_L .item_num *{
	color:#fff !important;
}
html body.catx-on #admin_wrap #sec_wrap.perform-page .item_header_L .item_num #all_cnt,
html body.catx-on #admin_wrap .perform-page .item_num.badge #all_cnt,
html body.catx-on #admin_wrap .perform-page .item_num.badge .all_cnt,
html body.catx-on #admin_wrap .salary-page .item_num.badge .all_cnt{
	margin:0 2px 0 4px !important;
	font-family:'NotoSansKR-Bold' !important;
	font-size:15px !important; font-weight:normal !important;
}

/* 실적·급여 래퍼 여백 — 특이도 재조정.
 * 매물목록용 규칙이 ID 1 + 클래스 4 라(.catx-on/.catx-light/.admin_main_wrap/
 * .admin_itemList) html 을 붙여도 클래스 수에서 밀린다.
 *  - 실적: :has(#sec_wrap…) 로 ID 를 하나 더 써서 넘긴다(ID 2).
 *  - 급여: 클래스를 하나 더 겹쳐(.salary-page.salary-page) 클래스 4 로 맞춘다. */
html body.catx-on #admin_wrap .admin_main_wrap:has(#sec_wrap.perform-page),
html body.catx-on #admin_wrap .admin_main_wrap:has(.salary-page.salary-page){
	background: var(--cx-page-solid) !important;
	padding:0 !important;
}

/* 급여 화면: 제목 줄 = [제목] ......... [총 급여], 설명은 그 아래 줄.
 * .salary-heading 의 직계 자식은 h1 / p / .total_amount 세 개라
 * order 로 배치하고 설명만 다음 줄로 내린다. */
html body.catx-on #admin_wrap .salary-page .salary-heading.salary-heading-sum{
	display:flex !important;
	align-items:center !important;
	flex-wrap:wrap !important;
	gap:0 12px !important;
}
html body.catx-on #admin_wrap .salary-page .salary-heading.salary-heading-sum > h1{
	order:1 !important; flex:0 0 auto !important;
}
html body.catx-on #admin_wrap .salary-page .salary-heading.salary-heading-sum > .total_amount{
	order:2 !important;
	flex:0 0 auto !important;
	width:auto !important; max-width:none !important;
	min-height:0 !important;
	margin:0 0 0 auto !important;
	padding:0 14px !important;
	height:36px !important;
	display:inline-flex !important; align-items:center !important; gap:6px !important;
	border-radius:8px !important;
	white-space:nowrap !important;
}
html body.catx-on #admin_wrap .salary-page .salary-heading.salary-heading-sum > p{
	order:3 !important; flex:1 1 100% !important;
}

/* 급여 화면 툴바: 개수 배지(.bbs_num)와 키워드 검색 버튼을 다른 목록 화면과 같은
 * accent 로 통일한다. 페이지 CSS 가 #0557FE 를 직접 쓰고 있어 테마 색과 달랐다. */
html body.catx-on #admin_wrap .salary-page .bbs_num{
	display:inline-flex !important; align-items:center !important;
	width:auto !important; min-width:0 !important;
	height:32px !important; min-height:32px !important;
	padding:0 12px !important; margin:0 !important;
	border:0 !important; border-radius:7px !important;
	background: var(--cx-accent) !important;
	color:#fff !important;
	font-size:13px !important; font-weight:normal !important; line-height:1 !important;
	white-space:nowrap !important; box-shadow:none !important;
}
html body.catx-on #admin_wrap .salary-page .bbs_num *{ color:#fff !important; }
html body.catx-on #admin_wrap .salary-page .bbs_num .all_cnt,
html body.catx-on #admin_wrap .salary-page .bbs_num .num{
	margin:0 2px 0 4px !important;
	font-family:'NotoSansKR-Bold' !important;
	font-size:15px !important; font-weight:normal !important;
}
html body.catx-on #admin_wrap .salary-page .input_search_box input{
	height:34px !important;
	border:1px solid var(--cx-line2) !important;
	border-right:0 !important;
	border-radius:7px 0 0 7px !important;
}
html body.catx-on #admin_wrap .salary-page .input_search_box span,
html body.catx-on #admin_wrap .salary-page .input_search_box span:hover{
	width:38px !important; height:34px !important;
	border:1px solid var(--cx-accent) !important;
	border-radius:0 7px 7px 0 !important;
	background: var(--cx-accent) !important;
}
html body.catx-on #admin_wrap .salary-page .input_search_box span i{ color:#fff !important; }

/* 급여 화면 총 급여 요약: 제목 영역 전체 높이 기준으로 세로 가운데.
 * 제목(h1)과 설명(p)이 서로 다른 줄이라 flex 로는 첫 줄에만 맞춰진다.
 * 요약만 흐름에서 빼 제목 영역 정중앙에 놓고, 그만큼 오른쪽 패딩을 비워 둔다. */
@media (min-width:993px){
	html body.catx-on #admin_wrap .salary-page .salary-heading.salary-heading-sum{
		position:relative !important;
		padding-right:300px !important;
	}
	html body.catx-on #admin_wrap .salary-page .salary-heading.salary-heading-sum > .total_amount{
		position:absolute !important;
		right:18px !important;
		top:50% !important;
		transform:translateY(-50%) !important;
		margin:0 !important;
		height:44px !important;
		padding:0 16px !important;
		display:inline-flex !important; align-items:center !important; gap:8px !important;
		border-radius:10px !important;
	}
	html body.catx-on #admin_wrap .salary-page .salary-heading.salary-heading-sum > p{
		flex:1 1 100% !important;
	}
}

/* 급여 화면 모바일: 총 급여 요약을 제목·설명 아래 줄로 내린다.
 * 좁은 폭에서는 제목 옆에 둘 자리가 없어 글자와 겹쳤다. */
@media (max-width:992px){
	html body.catx-on #admin_wrap .salary-page .salary-heading.salary-heading-sum{
		position:static !important;
		padding-right:0 !important;
	}
	html body.catx-on #admin_wrap .salary-page .salary-heading.salary-heading-sum > h1{
		order:1 !important; flex:1 1 100% !important;
	}
	html body.catx-on #admin_wrap .salary-page .salary-heading.salary-heading-sum > p{
		order:2 !important; flex:1 1 100% !important;
	}
	html body.catx-on #admin_wrap .salary-page .salary-heading.salary-heading-sum > .total_amount{
		position:static !important;
		transform:none !important;
		order:3 !important;
		flex:1 1 100% !important; width:100% !important;
		margin:8px 0 0 !important;
		height:auto !important; min-height:40px !important;
		padding:8px 12px !important;
		border-radius:8px !important;
		box-sizing:border-box !important;
	}
}

/* 급여 화면 모바일: 총 급여 상자의 좌우 여백을 제목·설명과 같게.
 * 페이지 CSS 가 .total_amount 에 padding:14px 18px 를 줘 제목보다 안쪽 여백이
 * 더 컸다. 제목 영역의 좌우 패딩(12px)에 맞춰 폭을 꽉 채우고 안쪽 여백만 줄인다. */
@media (max-width:992px){
	html body.catx-on #admin_wrap .salary-page .salary-heading.salary-heading-sum{
		padding:12px 12px !important;
	}
	html body.catx-on #admin_wrap .salary-page .salary-heading.salary-heading-sum > .total_amount{
		width:100% !important; max-width:100% !important;
		margin:10px 0 0 !important;
		padding:10px 12px !important;
		min-height:0 !important;
		box-sizing:border-box !important;
	}
}

/* top10-title-font-14-v1 */
/* Both property dashboards share this panel; override legacy inline 12.5px titles. */
body.catx-on .catxi-item .catxi-top-viewed .catxi-lname{font-size:14px !important;}

/* staff-contact-display-v1 */
body.catx-on .catxd-stcard .catxd-stdisplay{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;}
body.catx-on .catxd-stcard .catxd-stnm{flex-wrap:nowrap;}
body.catx-on .catxd-stcard .catxd-stnm .catxd-sttype,body.catx-on .catxd-stcard .catxd-mebadge{flex-shrink:0;}
body.catx-on .catxd-stcard .catxd-stnamewrap .catxd-stcard-last{display:flex;flex-direction:row;align-items:center;gap:5px;text-align:left;white-space:nowrap;min-width:0;overflow:hidden;}
body.catx-on .catxd-stcard .catxd-stcard-last small{flex-shrink:0;}
body.catx-on .catxd-logrow{flex-wrap:wrap;}
body.catx-on .catxd-logrow .catxd-sch-who{width:auto;min-width:0;flex:1 1 80px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}
body.catx-on .catxd-logrow .catxd-sch-title{display:block;order:5;flex:0 0 100%;white-space:normal;overflow-wrap:anywhere;}
@media(max-width:767px){body.catx-on .catxd-stcard .catxd-stnamewrap{grid-row:1 / 3;align-self:center;}}

/* category-four-navy-sidebar-v1 */
body.catx-on #admin_wrap header.style_admin_category[data-category-navy="1"]{
 --cx-text:#f1f5fb; --cx-strong:#ffffff; --cx-body:#e2eaf4; --cx-sub:#c5d4e5; --cx-sub2:#b6c8dc;
 --cx-sidebar:#203d59; --cx-line:rgba(220,233,248,.18); --cx-line2:rgba(220,233,248,.16);
 --cx-line-soft:rgba(220,233,248,.12); --cx-hover-bg:#2c4d6e; --cx-dash:#a8bfd7;
 --cx-accent-token:#a9d3ff; --cx-accent-text:#c1dfff;
 --cx-home-bg:#365b80; --cx-home-line:#739cc4;
 background:#203d59 !important; border-right-color:#19334b !important;
 color:#f1f5fb;
}
body.catx-on #admin_wrap header.style_admin_category[data-category-navy="1"] .logo_btm,
body.catx-on #admin_wrap header.style_admin_category[data-category-navy="1"] .nav_view_box,
body.catx-on #admin_wrap header.style_admin_category[data-category-navy="1"] .admin_nav,
body.catx-on #admin_wrap header.style_admin_category[data-category-navy="1"] .catx-nav{background:#203d59 !important;}
body.catx-on #admin_wrap header.style_admin_category[data-category-navy="1"] .catx-menu-row,
body.catx-on #admin_wrap header.style_admin_category[data-category-navy="1"] .catx-home-txt{color:#f1f5fb !important;font-weight:600;}
body.catx-on #admin_wrap header.style_admin_category[data-category-navy="1"] .catx-mi,
body.catx-on #admin_wrap header.style_admin_category[data-category-navy="1"] .catx-home-ico{color:#c5d9ee !important;}
body.catx-on #admin_wrap header.style_admin_category[data-category-navy="1"] .catx-group-title{color:#dce9f7 !important;font-size:13px;font-weight:700;}
body.catx-on #admin_wrap header.style_admin_category[data-category-navy="1"] .catx-group-code{color:#afc4dc !important;font-size:10px;letter-spacing:.12em;}
body.catx-on #admin_wrap header.style_admin_category[data-category-navy="1"] .catx-sub .catx-leaf,
body.catx-on #admin_wrap header.style_admin_category[data-category-navy="1"] .catx-sub .catx-sg-title{color:#e2eaf4 !important;}
body.catx-on #admin_wrap header.style_admin_category[data-category-navy="1"] .catx-menu-row:hover,
body.catx-on #admin_wrap header.style_admin_category[data-category-navy="1"] .catx-leaf:hover,
body.catx-on #admin_wrap header.style_admin_category[data-category-navy="1"] .catx-sg-title:hover,
body.catx-on #admin_wrap header.style_admin_category[data-category-navy="1"] .catx-home:hover{background:#2c4d6e !important;color:#fff !important;}
body.catx-on #admin_wrap header.style_admin_category[data-category-navy="1"] .catx-menu.is-open > .catx-menu-row{background:#2c4d6e !important;color:#fff !important;}
body.catx-on #admin_wrap header.style_admin_category[data-category-navy="1"] .catx-menu.is-active > .catx-menu-row,
body.catx-on #admin_wrap header.style_admin_category[data-category-navy="1"] .catx-leaf.is-active,
body.catx-on #admin_wrap header.style_admin_category[data-category-navy="1"] .catx-home.is-active{background:#365b80 !important;color:#fff !important;box-shadow:inset 3px 0 #91c8ff;font-weight:700;}
body.catx-on #admin_wrap header.style_admin_category[data-category-navy="1"] .catx-menu-row:focus-visible,
body.catx-on #admin_wrap header.style_admin_category[data-category-navy="1"] .catx-leaf:focus-visible,
body.catx-on #admin_wrap header.style_admin_category[data-category-navy="1"] .catx-home:focus-visible,
body.catx-on #admin_wrap header.style_admin_category[data-category-navy="1"] .catx-group-head:focus-visible,
body.catx-on #admin_wrap header.style_admin_category[data-category-navy="1"] .catx-sg-title:focus-visible{outline:2px solid #b8dcff;outline-offset:-2px;}

/* category-navy-group-colors-v1 */
body.catx-on #admin_wrap header.style_admin_category[data-category-navy="1"] .catx-group[data-catx-group="CORE"] .catx-group-code,
body.catx-on #admin_wrap header.style_admin_category[data-category-navy="1"] .catx-group[data-catx-group="CORE"] .catx-group-title{color:#9dccff !important;}
body.catx-on #admin_wrap header.style_admin_category[data-category-navy="1"] .catx-group[data-catx-group="OPS"] .catx-group-code,
body.catx-on #admin_wrap header.style_admin_category[data-category-navy="1"] .catx-group[data-catx-group="OPS"] .catx-group-title{color:#91e2bc !important;}
body.catx-on #admin_wrap header.style_admin_category[data-category-navy="1"] .catx-group[data-catx-group="WORK"] .catx-group-code,
body.catx-on #admin_wrap header.style_admin_category[data-category-navy="1"] .catx-group[data-catx-group="WORK"] .catx-group-title{color:#d3b9ff !important;}
body.catx-on #admin_wrap header.style_admin_category[data-category-navy="1"] .catx-group[data-catx-group="SITE"] .catx-group-code,
body.catx-on #admin_wrap header.style_admin_category[data-category-navy="1"] .catx-group[data-catx-group="SITE"] .catx-group-title{color:#b7c9ff !important;}
body.catx-on #admin_wrap header.style_admin_category[data-category-navy="1"] .catx-group[data-catx-group="CONF"] .catx-group-code,
body.catx-on #admin_wrap header.style_admin_category[data-category-navy="1"] .catx-group[data-catx-group="CONF"] .catx-group-title{color:#ffcf8d !important;}

/* category-navy-lighter-background-v1 */
body.catx-on #admin_wrap header.style_admin_category[data-category-navy="1"]{--cx-sidebar:#2b4b68;--cx-hover-bg:#345473;--cx-home-bg:#406486;background:#2b4b68 !important;border-right-color:#25435e !important;}
body.catx-on #admin_wrap header.style_admin_category[data-category-navy="1"] .logo_btm,
body.catx-on #admin_wrap header.style_admin_category[data-category-navy="1"] .nav_view_box,
body.catx-on #admin_wrap header.style_admin_category[data-category-navy="1"] .admin_nav,
body.catx-on #admin_wrap header.style_admin_category[data-category-navy="1"] .catx-nav{background:#2b4b68 !important;}
body.catx-on #admin_wrap header.style_admin_category[data-category-navy="1"] .catx-menu-row:hover,
body.catx-on #admin_wrap header.style_admin_category[data-category-navy="1"] .catx-leaf:hover,
body.catx-on #admin_wrap header.style_admin_category[data-category-navy="1"] .catx-sg-title:hover,
body.catx-on #admin_wrap header.style_admin_category[data-category-navy="1"] .catx-home:hover,
body.catx-on #admin_wrap header.style_admin_category[data-category-navy="1"] .catx-menu.is-open > .catx-menu-row{background:#345473 !important;}
body.catx-on #admin_wrap header.style_admin_category[data-category-navy="1"] .catx-menu.is-active > .catx-menu-row,
body.catx-on #admin_wrap header.style_admin_category[data-category-navy="1"] .catx-leaf.is-active,
body.catx-on #admin_wrap header.style_admin_category[data-category-navy="1"] .catx-home.is-active{background:#406486 !important;}
