/* ===========================================================================
   MY설문함 Dashboard Renewal v2 — 2026-07
   Isolated stylesheet for the new dashboard-style My설문함 UI so we don't
   regress svy_renewal.css / svy_renewal_sub_mobile.css used elsewhere.
   Loaded site-wide via skin_v2/_svy_head.html (svy_head widget).
=========================================================================== */

:root{
	--svy2-primary:#6C5CE7;
	--svy2-primary-dark:#5a4bd4;
	--svy2-primary-soft:#eeecfb;
	--svy2-text:#333333;
	--svy2-text-strong:#18181b;
	--svy2-text-sub:#8a8a99;
	--svy2-border:#ececf2;
	--svy2-bg:#fafaff;
	--svy2-card-bg:#ffffff;
	--svy2-radius:12px;
	--svy2-radius-sm:8px;
	--svy2-success:#16a34a;
	--svy2-success-soft:#eafaf0;
	--svy2-warn:#f59e0b;
	--svy2-warn-soft:#fffbeb;
	--svy2-danger:#dc2626;
	--svy2-danger-soft:#fef2f2;
	--svy2-muted-soft:#f4f4f7;
	--svy2-font:'Pretendard', -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, 'Helvetica Neue', Arial, sans-serif;
}

/* ---------------------------------------------------------------------------
   List-page shell: 사이드바 폭/배경 + 대시보드 배경 (MY설문함/삭제설문함/주소록)
   .svy-list-shell 는 !$lnb (폴더 사이드바를 쓰는 목록형 페이지)에만 부여됨
--------------------------------------------------------------------------- */
/* 셸 전체를 대시보드 색으로 통일 → 사이드바(흰색) 외 영역은 하나의 #fafaff 배경 */
.svy-list-shell{
	background:var(--svy2-bg);
}
.svy-list-shell .left-section{
	width:220px; /* 문자/이메일 주소록 한 줄 표시용 — MY설문함 2026-08 */
	margin:60px 0 0 0;
	background:#ffffff;
	border-right:1px solid var(--svy2-border);
	overflow:visible; /* 폴더 상태 요약이 대시보드 위로 넘치도록 */
	position:relative;
	z-index:5; /* #content(대시보드) 위에 상태 칩 표시 */
}
.svy-list-shell #content{
	flex:1 1 0;
	width:auto;
	min-width:0;
	margin:60px 0 0 0;
	background:transparent;
	position:relative;
	z-index:1;
}
/* survey-wrap 자체 배경/테두리/그림자 제거 → 셸의 #fafaff 를 그대로 사용(박스 중첩 제거) */
.svy-list-shell #content .survey-wrap{
	background:transparent;
	border:none;
	box-shadow:none;
}
.svy-list-shell #content .scrollbar-inner{
	background:transparent;
}
/* 사이드바를 flex 컬럼으로: 폴더 목록 영역이 남는 공간을 채우고, 플랜 카드는 하단 고정.
   스크롤바는 표시하지 않는다(overflow:visible) - 내용이 길면 페이지가 함께 늘어난다. */
.svy-list-shell .nav-menu-svy .content-inner{
	display:flex;
	flex-direction:column;
	min-height:calc(100vh - 70px);
	overflow:visible;
}
.svy-list-shell #left-move-menu{
	overflow:visible;
}
.svy-list-shell #left-move-menu .left-menu-section{
	height:auto;
	flex:1 1 auto;
	min-height:0;
	overflow:visible !important; /* 레거시 overflow-y:scroll 이 상태 칩을 자르지 않도록 */
}
.svy-list-shell .plan-quota-card{
	flex-shrink:0;
}
/* 삭제 설문함: 기존(레거시) 배경 휴지통 아이콘 제거 → 신규 SVG 아이콘만 표시 */
.svy-list-shell .left-menu-section .lmenu-st03{
	background:none;
	padding:0;
	border-bottom:none;
}
@media (max-width:1024px){
	.svy-list-shell .left-section{ width:auto; }
	.svy-list-shell #content{ width:calc(100% - 20px); }
	.svy-list-shell .nav-menu-svy .content-inner{ height:auto; }
}

/* 서베이 앱 상단 헤더 - 퍼플 테마 (레퍼런스) */
header.sub-top-wrap{
	background-color:var(--svy2-primary);
	border-bottom:1px solid var(--svy2-primary-dark);
}

/* ---------------------------------------------------------------------------
   Sidebar nav rows (My 설문함 / 최근 작업 / 즐겨찾기 / 폴더 / 삭제 설문함 / 주소록)
--------------------------------------------------------------------------- */
.nav-menu-svy .nav-row{
	display:flex;
	align-items:center;
	gap:8px;
	padding:9px 10px;
	border-radius:var(--svy2-radius-sm);
	color:#333333;
	font-family:var(--svy2-font);
	font-size:15px;
	font-weight:600;
	transition:background-color .15s ease, color .15s ease;
}
.nav-menu-svy .nav-row.nav-row-main{
	font-weight:700;
	margin:0 0 6px;
	cursor:default;
	pointer-events:none; /* 클릭 이동 없음 */
}
.nav-menu-svy .nav-row.nav-row-main:hover{
	background:none;
}
.nav-menu-svy .nav-row.nav-row-main.selected,
.nav-menu-svy .nav-row.nav-row-main.selected:hover{
	background:var(--svy2-primary-soft);
	color:var(--svy2-primary);
}
.nav-menu-svy .nav-row.nav-row-main.selected .nav-ico svg path{
	fill:var(--svy2-primary);
}
.nav-menu-svy .nav-ico{
	display:inline-flex;
	align-items:center;
	justify-content:center;
	width:18px;
	height:18px;
	flex-shrink:0;
}
.nav-menu-svy .nav-ico svg{
	width:16px;
	height:16px;
}
.nav-menu-svy .nav-ico svg path{
	fill:var(--svy2-text);
	transition:fill .15s ease;
}
.nav-menu-svy .nav-text{
	flex:1 1 auto;
	min-width:0;
	white-space:nowrap;
	overflow:hidden;
	text-overflow:ellipsis;
	line-height:1.25;
}
.nav-menu-svy .list-count{
	color:var(--svy2-text-sub);
	font-size:12px;
	flex-shrink:0;
	margin-left:4px;
}
.nav-menu-svy a.nav-row:hover{
	background:var(--svy2-muted-soft);
}
.nav-menu-svy a.nav-row.selected,
.nav-menu-svy .nav-row.selected{
	background:var(--svy2-primary-soft);
	color:var(--svy2-primary);
	font-weight:600;
}
.nav-menu-svy a.nav-row.selected .nav-ico svg path,
.nav-menu-svy .nav-row.selected .nav-ico svg path{
	fill:var(--svy2-primary);
}
.nav-menu-svy .nav-row-folder-head{
	cursor:pointer;
	font-weight:500;
}
.nav-menu-svy .nav-row-folder-head:hover{
	background:var(--svy2-muted-soft);
}
.nav-menu-svy li.lmenu-quick,
.nav-menu-svy li.lmenu-st01,
.nav-menu-svy li.lmenu-st03{
	list-style:none;
	margin:0;
}

/* 좌측 메뉴 전체 컨테이너 - 카드형 테두리/그림자 제거하고 플랫한 리스트로 변경 */
.nav-menu-svy .left-menu-section{
	background:none;
	box-shadow:none;
	border:none;
	padding:12px 8px;
}

/* 그룹 구분선/여백 */
.nav-menu-svy .nav-group-sep{
	height:1px;
	margin:8px 8px;
	background:var(--svy2-border);
}
.nav-menu-svy .nav-group-sep-grow{
	flex:1 1 auto;
	min-height:16px;
	background:none;
	margin:0;
}

/* 폴더 섹션: 접기/펼치기 */
.nav-menu-svy .nav-row-folder-head .nav-folder-chevron{
	display:inline-flex;
	align-items:center;
	justify-content:center;
	width:14px;
	flex-shrink:0;
}
.nav-folder-chevron svg{ display:block; }
.nav-folder-chevron .ptr-collapsed{ display:none; align-items:center; }
.nav-folder-chevron .ptr-expanded{ display:inline-flex; align-items:center; }
.nav-folder-section.collapsed .nav-folder-chevron .ptr-expanded{ display:none; }
.nav-folder-section.collapsed .nav-folder-chevron .ptr-collapsed{ display:inline-flex; }
.nav-menu-svy .nav-folder-add{
	margin-left:auto;
	width:20px;
	height:20px;
	display:inline-flex;
	align-items:center;
	justify-content:center;
	border:none;
	background:none;
	border-radius:var(--svy2-radius-sm);
	cursor:pointer;
	flex-shrink:0;
}
.nav-menu-svy .nav-folder-add:hover{
	background:var(--svy2-muted-soft);
}
.nav-menu-svy .nav-folder-add svg{
	width:11px;
	height:11px;
}
.nav-folder-section.collapsed .nav-folder-tree{
	display:none;
}

/* 폴더 트리 항목 ($lmenu) - 폴더 아이콘 + 트리(루트) 들여쓰기 */
.nav-menu-svy .nav-folder-tree{
	overflow:visible;
}
.nav-menu-svy .nav-folder-tree .lmenu{
	margin:2px 0 0 15px;
	padding:0 0 0 8px;
	background:none;
	border:none;
	border-left:none; /* 드래그 핸들과 겹치던 트리 세로줄 제거 */
	overflow:visible;
}
.nav-menu-svy .nav-folder-tree .lmenu li{
	position:relative;
	padding:0;
	margin:0;
	list-style:none;
	background:none;
	border:none;
	overflow:visible;
	z-index:1;
}
.nav-menu-svy .nav-folder-tree .lmenu li:hover{
	background:none;
	z-index:20; /* 호버 행의 상태 칩이 아래 폴더/대시보드보다 위 */
}
.nav-menu-svy .nav-folder-tree .lmenu-link{
	display:flex;
	align-items:center;
	gap:8px;
	padding:8px 10px 8px 8px;
	border-radius:var(--svy2-radius-sm);
	color:#333333;
	font-family:var(--svy2-font);
	font-size:14px;
	font-weight:500;
	overflow:visible; /* 상태 요약이 사이드바 밖으로 */
	min-width:0;
	transition:background-color .15s ease, color .15s ease;
}
/* Root / 하위 폴더 모두 동일한 padding → 설문 개수 오른쪽 정렬 일치 */
/* 폴더 앞 펼침 화살표(pointer_wrap) - 요청에 따라 숨김 2026-08 */
.nav-menu-svy .nav-folder-tree .folder-toggle{
	display:none;
	align-items:center;
	justify-content:center;
	width:8px;
	flex-shrink:0;
}
.nav-menu-svy .nav-folder-tree .folder-toggle svg{ width:6px; height:7px; display:block; }
.nav-menu-svy .nav-folder-tree .folder-toggle svg path{ fill:var(--svy2-text-sub); }
/* 폴더 아이콘(folder.svg) */
.nav-menu-svy .nav-folder-tree .folder-ico{
	display:inline-flex;
	align-items:center;
	justify-content:center;
	width:17px;
	flex-shrink:0;
}
.nav-menu-svy .nav-folder-tree .folder-ico svg{ width:16px; height:13px; display:block; }
.nav-menu-svy .nav-folder-tree .folder-ico svg path{ fill:var(--svy2-text); }
/* 미분류: 아이콘 자리 공백 없이 텍스트를 왼쪽부터 표시 — 2026-08 */
.nav-menu-svy .nav-folder-tree .lmenu li.is-root .folder-ico,
.nav-menu-svy .nav-folder-tree .folder-ico-empty{
	display:none;
	width:0;
}
.nav-menu-svy .nav-folder-tree .lmenu-link:hover{ background:var(--svy2-muted-soft); }
.nav-menu-svy .nav-folder-tree .lmenu li.selected .lmenu-link,
.nav-menu-svy .nav-folder-tree .lmenu li.selected > .lmenu-link{
	background:var(--svy2-primary-soft);
	color:var(--svy2-primary);
	font-weight:600;
}
.nav-menu-svy .nav-folder-tree .lmenu li.selected .folder-ico svg path{ fill:var(--svy2-primary); }
.nav-menu-svy .nav-folder-tree .lmenu li.selected .folder-toggle svg path{ fill:var(--svy2-primary); }
.nav-menu-svy .nav-folder-tree .lmenu-text{
	flex:1 1 auto;
	min-width:0;
	white-space:nowrap;
	overflow:hidden;
	text-overflow:ellipsis;
}
/* 설문 개수 + (hover 시) 상태 요약 — 행 오른쪽 끝(=개수 옆)에서 대시보드 위로 */
.nav-menu-svy .nav-folder-tree .folder-meta{
	display:inline-flex;
	align-items:center;
	flex:0 0 auto;
	margin-left:auto;
	min-width:0;
}
.nav-menu-svy .nav-folder-tree .list-count{
	position:relative;
	z-index:1;
	color:var(--svy2-text-sub);
	font-size:12px;
	font-weight:400;
	flex-shrink:0;
	margin-left:0;
	opacity:1;
}
.nav-menu-svy .nav-folder-tree .folder-status-slide{
	position:absolute;
	left:100%; /* 폴더 행 오른쪽 끝 → 대시보드 영역 */
	top:50%;
	display:inline-flex;
	align-items:center;
	gap:4px;
	margin-left:6px;
	padding:5px 10px;
	overflow:visible;
	opacity:0;
	pointer-events:none;
	z-index:40;
	background:#ffffff;
	box-shadow:0 2px 10px rgba(20, 20, 40, .12);
	border:1px solid var(--svy2-border);
	border-radius:8px;
	font-size:11px;
	font-weight:600;
	line-height:1.2;
	white-space:nowrap;
	color:var(--svy2-text-sub);
	transform:translate(12px, -50%); /* 오른쪽에서 슬라이드 인 */
	transition:opacity .18s ease, transform .22s ease;
}
.nav-menu-svy .nav-folder-tree .lmenu li.selected .folder-status-slide{
	background:#ffffff;
}
.nav-menu-svy .nav-folder-tree .folder-status-slide .fs-sep{
	color:#c5c5ce;
	font-weight:400;
}
.nav-menu-svy .nav-folder-tree .folder-status-slide .fs-live{ color:#16a34a; }
.nav-menu-svy .nav-folder-tree .folder-status-slide .fs-draft{ color:#6b7280; }
.nav-menu-svy .nav-folder-tree .folder-status-slide .fs-end{ color:#dc2626; }
/* hover: 개수/버튼은 사이드바 안, 상태 칩은 대시보드 위 */
.nav-menu-svy .nav-folder-tree .lmenu li:hover .folder-status-slide{
	opacity:1;
	transform:translate(0, -50%);
}
/* 특이도를 .left-section .lmenu li .button-set (display:inline-block) 보다 높여
   신규 JS 추가 폴더도 hover 시에만 수정/삭제 버튼이 보이도록 함 - 2026-08 */
/* 수정/삭제는 absolute — 개수 정렬(Root와 동일)에 영향 없음 */
.svy-list-shell .left-section .nav-folder-tree .lmenu li .button-set{
	position:absolute;
	right:6px;
	top:50%;
	transform:translateY(-50%);
	display:none;
	z-index:2;
}
.svy-list-shell .left-section .nav-folder-tree .lmenu li:hover .button-set{
	display:inline-flex;
	gap:2px;
}
.nav-menu-svy .nav-folder-tree .button-set button{
	width:22px; height:22px;
	border:none; background:none; cursor:pointer;
	border-radius:6px;
	display:inline-flex; align-items:center; justify-content:center;
}
.nav-menu-svy .nav-folder-tree .button-set button:hover{ background:#fff; }

/* 폴더 드래그 정렬 핸들 (Root 제외) — 상시 표시로 순서 변경 가능함을 알림 - MY설문함 2026-08 */
.nav-menu-svy .nav-folder-tree .folder-drag{
	position:absolute;
	left:-12px;
	top:50%;
	transform:translateY(-50%);
	width:12px;
	height:18px;
	cursor:grab;
	opacity:.45;
	border-radius:3px;
	background:
		radial-gradient(circle, var(--svy2-text-sub) 1.2px, transparent 1.6px) 0 0 / 6px 6px,
		radial-gradient(circle, var(--svy2-text-sub) 1.2px, transparent 1.6px) 6px 0 / 6px 6px;
	background-repeat:repeat-y;
	background-size:6px 6px;
	background-position:0 1px, 6px 1px;
	transition:opacity .15s ease, background-color .15s ease;
}
.nav-menu-svy .nav-folder-tree .lmenu li:not(.is-root):hover .folder-drag,
.nav-menu-svy .nav-folder-tree .lmenu li.ui-sortable-helper .folder-drag{
	opacity:.9;
	background-color:rgba(0,0,0,.04);
}
.nav-menu-svy .nav-folder-tree .lmenu li.ui-sortable-helper{
	cursor:grabbing;
	background:#fff;
	box-shadow:0 2px 8px rgba(0,0,0,.12);
	z-index:20;
}
.nav-menu-svy .nav-folder-tree .lmenu li.ui-sortable-helper .folder-drag{
	cursor:grabbing;
	opacity:1;
}
.nav-menu-svy .nav-folder-tree .folder-sort-placeholder{
	visibility:visible !important;
	height:34px;
	margin:2px 0;
	border-radius:var(--svy2-radius-sm);
	background:var(--svy2-primary-soft);
	border:1px dashed var(--svy2-primary);
}

/* ---------------------------------------------------------------------------
   Plan quota card (sidebar bottom)
--------------------------------------------------------------------------- */
.plan-quota-card{
	margin:16px 10px 4px;
	padding:14px;
	border-radius:var(--svy2-radius);
	background:var(--svy2-bg);
	border:1px solid var(--svy2-border);
}
.plan-quota-head{
	font-size:13px;
	font-weight:600;
	color:var(--svy2-text);
	margin-bottom:10px;
}
.plan-quota-badge{
	display:inline-block;
	padding:2px 8px;
	border-radius:999px;
	background:var(--svy2-primary-soft);
	color:var(--svy2-primary);
	font-size:11px;
	font-weight:700;
	margin-right:4px;
}
.plan-quota-row + .plan-quota-row{
	margin-top:10px;
}
.plan-quota-label{
	font-size:12px;
	color:var(--svy2-text-sub);
	margin-bottom:6px;
}
.plan-quota-bar{
	height:6px;
	border-radius:999px;
	background:var(--svy2-muted-soft);
	overflow:hidden;
}
.plan-quota-bar-fill{
	height:100%;
	border-radius:999px;
	background:var(--svy2-primary);
}
.plan-quota-upgrade-btn{
	display:block;
	margin-top:12px;
	padding:8px 0;
	border-radius:var(--svy2-radius-sm);
	background:var(--svy2-primary);
	color:#ffffff;
	font-size:13px;
	font-weight:600;
	text-align:center;
	transition:background-color .15s ease;
}
.plan-quota-upgrade-btn:hover{
	background:#4338ca;
	color:#ffffff;
}

/* ---------------------------------------------------------------------------
   My설문함 page header: breadcrumb + title row + help popover
--------------------------------------------------------------------------- */
.mysvy-breadcrumb{
	display:flex;
	align-items:center;
	flex-wrap:wrap;
	gap:6px;
	font-size:18px;
	line-height:1.3;
	color:var(--svy2-text-strong);
}
.mysvy-breadcrumb .crumb-link{
	font-size:18px;
	font-weight:500;
	color:var(--svy2-text-sub);
}
.mysvy-breadcrumb .crumb-link:hover{ color:var(--svy2-primary); }
.mysvy-breadcrumb .crumb-sep{
	color:var(--svy2-text-sub);
	font-size:16px;
	margin:0 2px;
}
.mysvy-breadcrumb .crumb-current{
	font-size:18px;
	font-weight:700;
	color:var(--svy2-text-strong);
}
.mysvy-breadcrumb .crumb-count{
	font-size:13px;
	font-weight:500;
	color:var(--svy2-text-sub);
	margin-left:2px;
}
.mysvy-title-row{
	position:relative;
	display:flex;
	align-items:center;
	gap:10px;
	font-family:var(--svy2-font);
	color:var(--svy2-text-strong);
}
.svy-sub-title.mysvy-title-row.mysvy-navi-title{
	margin-top: 10px;
}

/* 도움말 버튼: 설문 만들기 옆에 배치 - 2026-08 */
.toolbar-make-wrap{
	position:relative;
	display:inline-flex;
	align-items:center;
	gap:8px;
}
.help-popover-btn{
	width:34px;
	height:34px;
	border-radius:50%;
	border:1px solid var(--svy2-primary);
	background:var(--svy2-primary-soft);
	color:var(--svy2-primary);
	font-size:15px;
	font-weight:700;
	font-style:italic;
	font-family:Georgia, 'Times New Roman', serif;
	line-height:1;
	cursor:pointer;
	flex-shrink:0;
	transition:background-color .15s ease;
}
.help-popover-btn:hover{
	background:var(--svy2-primary-soft);
	color:var(--svy2-primary);
	border-color:var(--svy2-primary);
}
.help-popover{
	position:absolute;
	top:calc(100% + 8px);
	left:0;
	z-index:50;
	width:min(480px, 90vw);
	max-width:calc(100vw - 32px);
	background:var(--svy2-card-bg);
	border:1px solid var(--svy2-border);
	border-radius:var(--svy2-radius);
	box-shadow:0 8px 24px rgba(0,0,0,.08);
	padding:16px;
	text-align:left;
	box-sizing:border-box;
}
/* 설문 만들기 옆 도움말: 우측 정렬해 화면 밖으로 잘리지 않게 - 2026-08 */
.toolbar-make-wrap .help-popover{
	left:auto;
	right:0;
}
.help-popover .dot-st03{ margin:0; }

/* 삭제 설문함 — 복원 안내 (상단 고정, ? 팝오버와 별도) */
.mysvy-breadcrumb h3.svy-sub-title{
	margin-bottom: 2px;
}
.delsvy-notice{
	margin:8px 0 12px 0;
	padding:12px 14px;
	background:var(--svy2-primary-soft);
	border:1px solid var(--svy2-border);
	border-radius:var(--svy2-radius);
	font-size:13px;
	line-height:1.5;
	color:var(--svy2-text);
}
.delsvy-notice b{ color:var(--svy2-text-strong); }

/* ---------------------------------------------------------------------------
   상태 카드 (전체설문 / 진행중인 설문 / 총 응답 수 / 총 참여자 수)
--------------------------------------------------------------------------- */
.status-cards-row{
	display:grid;
	grid-template-columns:repeat(4, 1fr);
	gap:12px;
	margin:14px 0 16px;
}
.status-card{
	padding:18px 20px;
	background:var(--svy2-card-bg);
	border:1px solid var(--svy2-border);
	border-radius:var(--svy2-radius);
}
.status-card-top{
	display:flex;
	align-items:center;
	justify-content:space-between;
	gap:8px;
	margin-bottom:6px;
}
.status-card-value{
	font-size:26px;
	font-weight:700;
	color:var(--svy2-text-strong);
	line-height:1.2;
}
.status-card-trend{
	display:inline-flex;
	align-items:center;
	gap:2px;
	padding:2px 8px;
	border-radius:999px;
	background:var(--svy2-success-soft);
	color:var(--svy2-success);
	font-size:12px;
	font-weight:600;
}
.status-card-trend.down{
	background:var(--svy2-danger-soft);
	color:var(--svy2-danger);
}
.status-card-label{
	font-size:13px;
	color:var(--svy2-text-sub);
}
@media (max-width:1024px){
	.status-cards-row{ grid-template-columns:repeat(2, 1fr); }
}

/* ---------------------------------------------------------------------------
   대시보드 접기/펼치기 - MY설문함 renewal 2026-08
--------------------------------------------------------------------------- */
.dash-toggle-bar{
	display:flex;
	justify-content:space-between;
	align-items:center;
}
.dash-toggle-bar.is-collapsed{
	justify-content:flex-start;
}
/* 접기/펼치기 동일 스타일 — 기존 '대시보드 접기' 기준 */
.dash-toggle-btn,
.dash-toggle-btn.is-collapsed,
.dash-toggle-bar .dash-toggle-btn{
	display:inline-flex !important;
	align-items:center;
	gap:6px;
	box-sizing:border-box;
	height:30px !important;
	min-height:30px;
	padding:0 12px !important;
	margin:0;
	border:1px solid var(--svy2-border) !important;
	border-radius:999px !important;
	background:var(--svy2-card-bg) !important;
	color:var(--svy2-text-sub) !important;
	font-size:12px !important;
	font-weight:600 !important;
	line-height:1 !important;
	cursor:pointer;
	font-family:var(--svy2-font);
	box-shadow:none !important;
	appearance:none;
	-webkit-appearance:none;
}
.dash-toggle-btn:hover,
.dash-toggle-btn.is-collapsed:hover{
	border-color:var(--svy2-primary) !important;
	color:var(--svy2-primary) !important;
	background:var(--svy2-primary-soft) !important;
}
.dash-toggle-caret{
	display:inline-block;
	font-style:normal;
	font-size:10px;
	line-height:1;
	/* HTML ▼ — 펼침(접기 라벨)일 때 ▲ */
	transform:rotate(180deg);
	transition:transform .15s ease;
}
.dash-toggle-btn.is-collapsed .dash-toggle-caret{
	/* 접힘(펼치기 라벨)일 때 ▼ */
	transform:rotate(0deg);
}
.mysvy-dashboard.is-collapsed{ display:none; }
/* 대시보드 접힘: 상단 설문만들기 숨김(툴바 버튼과 중복 방지) */
.dash-toggle-bar.is-collapsed #dash_toggle_make_btn{ display:none !important; }

/* ---------------------------------------------------------------------------
   KPI 카드 (진행중 설문 / 오늘 응답 / 이번달 응답 / 누적 응답 / 빌링 사용량)
   - MY설문함 대시보드 renewal 2026-08
--------------------------------------------------------------------------- */
.kpi-cards-row{
	display:grid;
	grid-template-columns:repeat(4, minmax(0,1fr));
	gap:12px;
	margin:16px 0 18px;
}
.kpi-card{
	display:flex;
	flex-direction:column;
	gap:8px;
	min-width:0;
	padding:16px 18px;
	background:var(--svy2-card-bg);
	border:1px solid var(--svy2-border);
	border-radius:var(--svy2-radius);
}
.kpi-card-has-view{
	position:relative;
	padding-bottom:34px;
}
.kpi-view-btn{
	position:absolute;
	right:14px;
	bottom:12px;
	padding:0;
	border:none;
	background:none;
	color:var(--svy2-primary);
	font-size:12px;
	font-weight:600;
	font-family:var(--svy2-font);
	cursor:pointer;
	line-height:1;
}
.kpi-view-btn:hover{
	text-decoration:underline;
}
.kpi-label{
	font-size:13px;
	font-weight:500;
	color:var(--svy2-text-sub);
	white-space:nowrap;
}
.kpi-value{
	font-size:15px;
	line-height:1.1;
	color:var(--svy2-text-sub);
}
.kpi-value b{
	font-size:24px;
	font-weight:700;
	color:var(--svy2-text-strong);
}
.kpi-sub{
	font-size:12px;
	color:var(--svy2-text-sub);
}
.kpi-sub.up{ color:var(--svy2-success); }
.kpi-sub.down{ color:var(--svy2-danger); }

/* KPI 분리 로딩 스켈레톤 - PERF 2026-08 */
.kpi-card.is-loading,
.dash-panel.is-loading{
	position:relative;
}
.kpi-card.is-loading .kpi-value b,
.kpi-card.is-loading .kpi-sub{
	color:transparent !important;
	border-radius:6px;
	background:linear-gradient(90deg, #eceff3 25%, #f7f8fa 50%, #eceff3 75%);
	background-size:200% 100%;
	animation:mysvyKpiShimmer 1.2s ease-in-out infinite;
}
.kpi-card.is-loading .kpi-value b{
	display:inline-block;
	min-width:2.2em;
	min-height:1em;
}
.kpi-card.is-loading .kpi-sub{
	display:inline-block;
	min-width:5em;
	min-height:1em;
}
.dash-panel.is-loading .dash-trend-chart,
.dash-panel.is-loading .dash-deadline-list,
.dash-panel.is-loading .dash-active-list{
	min-height:72px;
	border-radius:8px;
	background:linear-gradient(90deg, #eceff3 25%, #f7f8fa 50%, #eceff3 75%);
	background-size:200% 100%;
	animation:mysvyKpiShimmer 1.2s ease-in-out infinite;
}
.dash-panel.is-loading .dash-trend-chart{ min-height:180px; }
@keyframes mysvyKpiShimmer{
	0%{ background-position:200% 0; }
	100%{ background-position:-200% 0; }
}

/* 빌링 사용량 카드(강조) */
.kpi-card-billing{
	gap:10px;
	background:var(--svy2-primary-soft);
	border-color:transparent;
}
.kpi-billing-head{
	display:flex;
	align-items:center;
	justify-content:space-between;
	gap:8px;
}
.kpi-billing-link{
	font-size:12px;
	color:var(--svy2-primary);
	white-space:nowrap;
}
.kpi-billing-link:hover{ text-decoration:underline; }
.kpi-billing-value{
	font-size:15px;
	color:var(--svy2-text-sub);
}
.kpi-billing-value b{
	font-size:24px;
	font-weight:700;
	color:var(--svy2-text-strong);
}
.kpi-billing-bar{
	height:8px;
	border-radius:999px;
	background:#ffffff;
	overflow:hidden;
}
.kpi-billing-bar-fill{
	height:100%;
	border-radius:999px;
	background:linear-gradient(90deg, #8b7ff0, var(--svy2-primary));
	transition:width .4s ease;
}
.kpi-billing-foot{
	display:flex;
	align-items:center;
	justify-content:space-between;
	font-size:12px;
	color:var(--svy2-text-sub);
}
@media (max-width:1024px){
	.kpi-cards-row{ grid-template-columns:repeat(2, minmax(0,1fr)); }
}

/* ---------------------------------------------------------------------------
   응답 추이 차트 + 마감 임박 설문 패널 - MY설문함 대시보드 renewal 2026-08
--------------------------------------------------------------------------- */
.dash-row{
	display:grid;
	grid-template-columns:minmax(0,1.9fr) minmax(0,1fr);
	gap:16px;
	margin:0 0 18px;
}
.dash-panel{
	min-width:0;
	padding:20px 22px;
	background:var(--svy2-card-bg);
	border:1px solid var(--svy2-border);
	border-radius:var(--svy2-radius);
}
.dash-panel-head{
	display:flex;
	align-items:center;
	justify-content:space-between;
	gap:8px;
}
.dash-panel-title{
	display:flex;
	align-items:center;
	gap:8px;
	font-size:16px;
	font-weight:700;
	color:var(--svy2-text-strong);
}
.dash-panel-ico{ display:inline-flex; align-items:center; font-size:16px; line-height:1; }
.dash-panel-ico svg{ width:19px; height:19px; display:block; }
.dash-panel-sub{
	margin-top:4px;
	font-size:12px;
	color:var(--svy2-text-sub);
}
.dash-panel-count{
	font-size:13px;
	color:var(--svy2-text-sub);
}
.dash-trend-chart{ width:100%; height:260px; margin-top:8px; }

/* 응답 추이 필터 드롭다운 (전체/기간) */
.trend-filters{ display:flex; align-items:center; gap:8px; }
.trend-dd{ position:relative; }
.trend-dd-btn{
	display:inline-flex;
	align-items:center;
	gap:6px;
	height:30px;
	padding:0 12px;
	border:1px solid var(--svy2-border);
	border-radius:8px;
	background:var(--svy2-muted-soft);
	font-size:13px;
	font-weight:500;
	color:var(--svy2-text);
	cursor:pointer;
}
.trend-dd-btn:hover{ background:#ececf1; }
.trend-dd-caret{ font-style:normal; font-size:10px; color:var(--svy2-text-sub); }
.trend-dd-menu{
	display:none;
	position:absolute;
	top:calc(100% + 4px);
	right:0;
	z-index:20;
	min-width:132px;
	padding:6px;
	background:#ffffff;
	border:1px solid var(--svy2-border);
	border-radius:10px;
	box-shadow:0 10px 26px rgba(24,24,27,.14);
}
.trend-dd-menu a{
	display:block;
	padding:8px 10px;
	border-radius:7px;
	font-size:13px;
	color:var(--svy2-text);
	text-decoration:none;
	white-space:nowrap;
}
.trend-dd-menu a:hover{ background:var(--svy2-primary-soft); color:var(--svy2-primary); }
/* 응답 추이 범위: 전체 / 진행 중 + 개별 설문 검색 */
.trend-dd-menu-scope{
	min-width:260px;
	max-width:min(360px, 90vw);
	padding-bottom:8px;
}
.trend-dd-menu-scope .trend-scope-parent{
	font-weight:600;
	color:var(--svy2-text-strong);
}
.trend-dd-menu-scope .trend-scope-child{
	margin-left:10px;
	padding-left:14px;
	border-left:2px solid var(--svy2-border);
	border-radius:0 7px 7px 0;
	font-size:12px;
	color:var(--svy2-text-sub);
}
.trend-dd-menu-scope .trend-scope-child:hover{
	border-left-color:var(--svy2-primary);
}
.trend-scope-divider{
	height:1px;
	margin:6px 4px;
	background:var(--svy2-border);
}
.trend-scope-search-wrap{ padding:2px 4px 6px; }
.trend-scope-search{
	width:100%;
	height:32px;
	padding:0 10px;
	border:1px solid var(--svy2-border);
	border-radius:8px;
	background:#fff;
	font-size:13px;
	color:var(--svy2-text);
	box-sizing:border-box;
}
.trend-scope-search:focus{
	outline:none;
	border-color:var(--svy2-primary);
	box-shadow:0 0 0 2px var(--svy2-primary-soft);
}
.trend-scope-svy-list{
	max-height:220px;
	overflow-y:auto;
	padding:0 2px;
}
.trend-scope-svy{
	display:block;
	padding:8px 10px;
	border-radius:7px;
	font-size:13px;
	color:var(--svy2-text);
	text-decoration:none;
	white-space:nowrap;
	overflow:hidden;
	text-overflow:ellipsis;
}
.trend-scope-svy:hover{ background:var(--svy2-primary-soft); color:var(--svy2-primary); }
.trend-scope-svy.is-active{
	background:var(--svy2-primary-soft);
	color:var(--svy2-primary);
	font-weight:600;
}
.trend-scope-svy-empty{
	padding:14px 10px;
	text-align:center;
	font-size:12px;
	color:var(--svy2-text-sub);
}

/* 마감 임박 리스트 */
.dash-deadline-list{
	margin-top:14px;
	display:flex;
	flex-direction:column;
	gap:12px;
	max-height:320px;
	overflow-y:auto;
}
.deadline-empty{
	padding:26px 0;
	text-align:center;
	font-size:13px;
	color:var(--svy2-text-sub);
}
.deadline-card{
	display:block;
	padding:14px 16px;
	border-radius:12px;
	background:var(--svy2-muted-soft);
	text-decoration:none;
	transition:filter .15s ease;
}
.deadline-card:hover{ filter:brightness(0.98); }
.deadline-card-top{
	display:flex;
	align-items:center;
	justify-content:space-between;
	gap:8px;
}
.deadline-title{
	overflow:hidden;
	text-overflow:ellipsis;
	white-space:nowrap;
	font-size:14px;
	font-weight:700;
	color:var(--svy2-text-strong);
}
.deadline-count{
	flex-shrink:0;
	font-size:13px;
	font-weight:700;
	color:var(--svy2-text-strong);
	white-space:nowrap;
}
.deadline-meta{
	margin-top:6px;
	font-size:12px;
	color:var(--svy2-text-sub);
}

@media (max-width:1100px){
	.dash-row{ grid-template-columns:1fr; }
}

/* ---------------------------------------------------------------------------
   진행 중 설문 응답 현황 - MY설문함 대시보드 renewal 2026-08
--------------------------------------------------------------------------- */
.dash-active{ margin:0 0 18px; }
.dash-active-list{
	margin-top:14px;
	display:flex;
	flex-direction:column;
	gap:10px;
}
.active-status-empty{
	padding:26px 0;
	text-align:center;
	font-size:13px;
	color:var(--svy2-text-sub);
}
.as-row{
	display:flex;
	align-items:center;
	gap:16px;
	padding:15px 18px;
	border:1px solid var(--svy2-border);
	border-radius:12px;
	background:var(--svy2-card-bg);
}
.as-title{
	flex-shrink:0;
	width:120px;
	overflow:hidden;
	text-overflow:ellipsis;
	white-space:nowrap;
	font-size:14px;
	font-weight:700;
	color:var(--svy2-text-strong);
}
.as-msg{
	flex:1;
	min-width:0;
	font-size:13px;
	color:var(--svy2-text-sub);
}
.as-msg b{ color:var(--svy2-text-strong); }
.as-dim{ color:var(--svy2-text-sub); opacity:.85; }
.as-right{
	display:flex;
	align-items:center;
	gap:14px;
	margin-left:auto;
	flex-shrink:0;
}
.as-badge{
	padding:5px 14px;
	border-radius:999px;
	font-size:12px;
	font-weight:600;
	white-space:nowrap;
}
.as-badge-none{ background:var(--svy2-primary-soft); color:var(--svy2-primary); }
.as-badge-check{ background:#fbf1e6; color:#d98324; }
.as-badge-ok{ background:var(--svy2-success-soft); color:var(--svy2-success); }
.as-actions{ display:flex; align-items:center; gap:8px; }
.as-actions button{
	display:inline-flex;
	align-items:center;
	justify-content:center;
	width:34px;
	height:34px;
	border:1px solid var(--svy2-border);
	border-radius:9px;
	background:var(--svy2-card-bg);
	cursor:pointer;
	transition:background .15s ease;
}
.as-actions button:hover{ background:var(--svy2-muted-soft); }
.as-actions img{ width:16px; height:16px; object-fit:contain; }
.as-actions button:first-child img{width: 14px; height: 14px;}

@media (max-width:900px){
	.as-row{ flex-wrap:wrap; gap:10px; }
	.as-title{ width:auto; }
	.as-msg{ flex-basis:100%; order:3; }
}

/* ---------------------------------------------------------------------------
   툴바: 상태탭 + 검색/기간/정렬/보기전환
--------------------------------------------------------------------------- */
.mysvy-toolbar{
	display:flex;
	align-items:center;
	justify-content:space-between;
	flex-wrap:wrap;
	gap:12px;
	padding:14px 0;
	border-bottom:none;
}
.toolbar-left{
	display:flex;
	align-items:center;
	gap:26px;
	flex-wrap:wrap;
	flex:1 1 auto;
	min-width:0;
}
.status-tabs{
	display:flex;
	align-items:center;
	gap:22px;
	height:33px;
	padding:0 22px;
	background:var(--svy2-card-bg);
	border-radius:999px;
	box-shadow:0 1px 3px rgba(24,24,27,.06);
}
.status-tab{
	padding:0;
	border:none;
	background:transparent;
	color:var(--svy2-text-sub);
	font-size:14px;
	font-weight:500;
	line-height:33px;
	white-space:nowrap;
	cursor:pointer;
	transition:color .15s ease;
}
.status-tab:hover{
	background:transparent;
	color:var(--svy2-text);
}
.status-tab.selected{
	background:transparent;
	color:var(--svy2-text-strong);
	font-weight:700;
}
.toolbar-right{
	display:flex;
	align-items:center;
	gap:8px;
	flex-wrap:wrap;
	margin-left:auto;
}

/* 기간 필터 */
.date-filter-wrap{ position:relative; }
.date-filter-btn{
	display:inline-flex;
	align-items:center;
	gap:6px;
	padding:7px 12px;
	border:1px solid var(--svy2-border);
	border-radius:var(--svy2-radius-sm);
	background:var(--svy2-card-bg);
	color:var(--svy2-text);
	font-size:13px;
	cursor:pointer;
	white-space:nowrap;
}
.date-filter-btn:hover{ border-color:var(--svy2-primary); }
.date-filter-btn.is-active{
	border-color:var(--svy2-primary);
	background:var(--svy2-primary-soft);
	color:var(--svy2-primary);
}
.date-filter-btn svg{ width:14px; height:14px; }
.date-filter-popover{
	position:absolute;
	top:36px;
	right:0;
	z-index:50;
	width:280px;
	background:var(--svy2-card-bg);
	border:1px solid var(--svy2-border);
	border-radius:var(--svy2-radius);
	box-shadow:0 8px 24px rgba(0,0,0,.08);
	padding:12px;
}
.date-preset-list{
	display:flex;
	flex-wrap:wrap;
	gap:6px;
	margin-bottom:10px;
	padding-bottom:10px;
	border-bottom:1px solid var(--svy2-border);
}
.date-preset-list button{
	padding:6px 10px;
	border:1px solid var(--svy2-border);
	border-radius:999px;
	background:var(--svy2-bg);
	color:var(--svy2-text);
	font-size:12px;
	cursor:pointer;
}
.date-preset-list button:hover{
	background:var(--svy2-primary-soft);
	color:var(--svy2-primary);
	border-color:var(--svy2-primary);
}
.date-preset-list button.selected{
	background:var(--svy2-primary);
	color:#ffffff;
	border-color:var(--svy2-primary);
	font-weight:600;
}
.date-custom-range{
	display:flex;
	align-items:center;
	gap:6px;
	flex-wrap:wrap;
}
.date-custom-range input[type=date]{
	flex:1 1 auto;
	min-width:0;
	padding:6px;
	border:1px solid var(--svy2-border);
	border-radius:var(--svy2-radius-sm);
	font-size:12px;
}
.date-custom-range span{ color:var(--svy2-text-sub); font-size:12px; }
.date-apply-btn, .date-clear-btn{
	margin-top:8px;
	padding:6px 10px;
	border-radius:var(--svy2-radius-sm);
	font-size:12px;
	cursor:pointer;
	border:1px solid var(--svy2-border);
	background:var(--svy2-bg);
}
.date-apply-btn{
	background:var(--svy2-primary);
	border-color:var(--svy2-primary);
	color:#fff;
}

/* 정렬 */
.sort-mode-select{
	padding:7px 10px;
	border:1px solid var(--svy2-border);
	border-radius:var(--svy2-radius-sm);
	background:var(--svy2-card-bg);
	color:var(--svy2-text);
	font-size:13px;
	cursor:pointer;
}

/* 리스트/그리드 토글 */
.list-grid-toggle{
	display:inline-flex;
	border:1px solid var(--svy2-border);
	border-radius:var(--svy2-radius-sm);
	overflow:hidden;
}
.lg-toggle-btn{
	display:inline-flex;
	align-items:center;
	justify-content:center;
	width:32px;
	height:32px;
	background:var(--svy2-card-bg);
	border:none;
	cursor:pointer;
}
.lg-toggle-btn + .lg-toggle-btn{ border-left:1px solid var(--svy2-border); }
.lg-toggle-btn svg{ width:15px; height:15px; }
.lg-toggle-btn svg path{ fill:var(--svy2-text-sub); }
.lg-toggle-btn img{ width:15px; height:15px; opacity:.55; }
.lg-toggle-btn.selected{ background:var(--svy2-primary); }
.lg-toggle-btn.selected svg path{ fill:#ffffff; }
.lg-toggle-btn.selected img{ opacity:1; filter:brightness(0) invert(1); }

/* 검색창 - 좌측 알약(pill) 형태, 아이콘 왼쪽 (레퍼런스 스크린샷4) */
.mysvy-toolbar .rcon{
	float:none;
	width:auto;
	text-align:left;
}
.mysvy-toolbar .rcon form{
	display:flex;
	align-items:center;
	gap:0;
	position:relative;
}
.mysvy-toolbar .rcon input[type=text]{
	width:320px;
	max-width:100%;
	height:33px;
	box-sizing:border-box;
	padding:0 18px 0 42px;
	border:1px solid transparent;
	border-radius:999px;
	background:var(--svy2-muted-soft);
	font-family:var(--svy2-font);
	font-size:14px;
	color:var(--svy2-text);
}
.mysvy-toolbar .rcon input[type=text]::placeholder{ color:var(--svy2-text-sub); }
.mysvy-toolbar .rcon input[type=text]:focus{
	outline:none;
	background:var(--svy2-card-bg);
	border-color:var(--svy2-primary);
}
.mysvy-toolbar .rcon .search-btn{
	position:absolute;
	left:16px;
	top:50%;
	transform:translateY(-50%);
	background:none;
	border:none;
	cursor:pointer;
	display:inline-flex;
	padding:0;
	z-index:1;
}
.mysvy-toolbar .rcon .search-btn svg{ width:16px; height:16px; }
.mysvy-toolbar .rcon .search-btn svg path{ fill:var(--svy2-text-sub); }

/* 툴바 우측: 보기전환 / 기간 / 정렬 / 설문 만들기 버튼 */
a.btn-make-toolbar,
a.btn-make-toolbar:link,
a.btn-make-toolbar:visited,
.btn-make-toolbar{
	display:inline-flex;
	align-items:center;
	gap:6px;
	padding:9px 18px;
	border-radius:var(--svy2-radius-sm);
	background:var(--svy2-primary);
	color:#ffffff !important;
	font-family:var(--svy2-font);
	font-size:14px;
	font-weight:600;
	white-space:nowrap;
	transition:background-color .15s ease;
}
a.btn-make-toolbar:hover,
.btn-make-toolbar:hover{ background:var(--svy2-primary-dark); color:#fff !important; }
.btn-make-toolbar span{ color:#fff !important; }
.btn-make-toolbar .plus{ font-size:16px; line-height:1; }

/* 숫자형 페이지네이션 (레퍼런스 스크린샷2) */
.mysvy-pagination{
	display:flex;
	align-items:center;
	justify-content:flex-end;
	gap:6px;
	padding:18px 2px 4px;
}
.mysvy-pagination button{
	min-width:32px;
	height:32px;
	padding:0 8px;
	border:1px solid var(--svy2-border);
	border-radius:var(--svy2-radius-sm);
	background:var(--svy2-card-bg);
	color:var(--svy2-text);
	font-family:var(--svy2-font);
	font-size:13px;
	cursor:pointer;
	transition:background-color .15s ease, color .15s ease, border-color .15s ease;
}
.mysvy-pagination button:hover:not(:disabled){ border-color:var(--svy2-primary); color:var(--svy2-primary); }
.mysvy-pagination button.current{
	background:var(--svy2-primary);
	border-color:var(--svy2-primary);
	color:#ffffff;
	font-weight:600;
}
.mysvy-pagination button:disabled{ opacity:.4; cursor:default; }
.mysvy-pagination .page-ellipsis{ color:var(--svy2-text-sub); padding:0 2px; }

/* ---------------------------------------------------------------------------
   테이블: 상태 pill / 응답 진행바 / hover 액션 / 즐겨찾기 별
--------------------------------------------------------------------------- */
.mysvy-hidden{ display:none !important; }

/* 테이블 가로스크롤을 테이블 래퍼에만 두어, 넓은 표가 툴바/카드까지 밀어내지 않도록.
   단, overflow-x:auto 는 세로 오버플로도 잘라내어 ⋮ 드롭다운이 가려지므로,
   표가 실제로 넘칠 만큼 좁은 화면(<=940px)에서만 스크롤을 활성화한다.
   768 이하에서는 모바일 카드 뷰로 전환하므로 테이블 가로스크롤이 필요 없음 - 2026-08 */
.svy-list-shell #content .survey-wrap{ overflow-x:visible; }
.mysvy-table-scroll{ width:100%; overflow:visible; }
.mysvy-table-list{ width:100%; }
@media (max-width:940px) and (min-width:769px){
	.mysvy-table-scroll{ overflow-x:auto; }
}

/* 768: PC 테이블 가로스크롤 대신 이미 렌더된 모바일 카드 뷰로 전환
   (전역 fix-pc/fix-mobile 브레이크포인트는 767 — 그 사이 구간을 보완) */
@media (max-width:767px){
	.svy-list-shell .mysvy-table-scroll.fix-pc,
	.svy-list-shell .mysvy-grid-view.fix-pc,
	.svy-list-shell .mysvy-pagination.fix-pc,
	.svy-list-shell .bulk-action-bar.fix-pc,
	.svy-list-shell .dash-toggle-bar.fix-pc,
	.svy-list-shell .mysvy-dashboard.fix-pc,
	.svy-list-shell .toolbar-make-wrap.fix-pc{
		display:none !important;
	}
	.svy-list-shell .board-list-mysvy.fix-mobile,
	.svy-list-shell .paginate.btn-list-more.fix-mobile,
	.svy-list-shell .mysvy-content.fix-mobile{
		display:block !important;
	}
	.default-section .mysvy-toolbar .toolbar-right{
		width: 100%;
		flex-direction: row-reverse;
	}
}

.status-pill{
	display:inline-flex;
	align-items:center;
	gap:6px;
	padding:4px 11px;
	border-radius:999px;
	font-size:12px;
	font-weight:600;
	white-space:nowrap;
}
.status-pill::before{
	content:"";
	width:6px;
	height:6px;
	border-radius:50%;
	background:currentColor;
	flex-shrink:0;
}
.status-pill.status-live{ background:var(--svy2-primary-soft); color:var(--svy2-primary); }
.status-pill.status-ready{ background:var(--svy2-warn-soft); color:var(--svy2-warn); }
.status-pill.status-pause{ background:var(--svy2-muted-soft); color:var(--svy2-text-sub); }
.status-pill.status-end{ background:var(--svy2-danger-soft); color:var(--svy2-danger); }
.status-pill.status-draft{ background:var(--svy2-muted-soft); color:var(--svy2-text-sub); }

.resp-progress{ font-size:13px; }
.resp-progress .resp-num{ font-weight:600; color:var(--svy2-text); }
.resp-progress .resp-goal{ color:var(--svy2-text-sub); }
.resp-bar{
	margin-top:4px;
	height:4px;
	border-radius:999px;
	background:var(--svy2-muted-soft);
	overflow:hidden;
}
.resp-bar-fill{
	height:100%;
	border-radius:999px;
	background:var(--svy2-primary);
}

.fav-star{
	display:inline-flex;
	align-items:center;
	justify-content:center;
	width:20px;
	height:20px;
	border:none;
	background:none;
	cursor:pointer;
	vertical-align:middle;
}
.fav-star svg{ width:15px; height:15px; }
.fav-star svg path{ fill:var(--svy2-text-sub); opacity:.45; transition:fill .15s ease, opacity .15s ease; }
.fav-star:hover svg path{ fill:var(--svy2-warn); opacity:.7; }
.fav-star.active svg path{ fill:var(--svy2-warn); opacity:1; }

/* 설문 부가기능 뱃지(AI 자기진단 / 로직) - MY설문함 renewal 2026-07 */
.svy-feature-badges{
	display:inline-flex;
	align-items:center;
	gap:8px;
	vertical-align:middle;
}
.svy-feature-badge{
	display:inline-flex;
	align-items:center;
	justify-content:center;
	line-height:0;
}
.svy-feature-ai svg{ display:block; height:22px; width:auto; }
.svy-feature-logic svg{ display:block; width:17px; height:17px; }
.svy-feature-logic svg path{ fill:var(--svy2-text); }

/* 리스트형: AI / 로직 슬롯 폭 고정 — 한쪽만 있어도 열 정렬 유지 - 2026-08 */
.mysvy-table-list .svy-feature-badges.is-fixed{
	gap:6px;
}
.mysvy-table-list .svy-feature-slot{
	display:inline-flex;
	align-items:center;
	justify-content:center;
	flex-shrink:0;
	line-height:0;
}
.mysvy-table-list .svy-feature-slot.slot-ai{
	width:70px; /* ai_diagnosis.svg(80×26) → height:22 기준 약 68px */
}
.mysvy-table-list .svy-feature-slot.slot-logic{
	width:18px;
}
.mysvy-table-list .svy-feature-slot-empty{
	display:block;
	width:100%;
	height:1px;
}

/* 리스트 뷰: 제목 셀 내부 래퍼를 flex 로 만들어 뱃지를 제목 컬럼 우측 끝(상태 컬럼 직전)에 정렬.
   ※ td 자체에 display:flex 를 주면 table-cell 이 아니게 되어 컬럼 폭 계산이 깨지므로 내부 div 를 사용 */
.mysvy-table-list td.left .svy-title-cell{
	display:flex;
	align-items:center;
	gap:6px;
	width:100%;
	min-width:0;
}
.mysvy-table-list td.left .svy-title-cell > span:first-of-type{
	overflow:hidden;
	text-overflow:ellipsis;
	white-space:nowrap;
	min-width:0;
}
.mysvy-table-list td.left .svy-feature-badges{
	margin-left:auto;
	flex-shrink:0;
}
/* 모바일/그리드 뷰: 제목 바로 옆에 인라인 배치 */
.mysvy-title .svy-feature-badges{ margin-left:6px; }
.grid-card-head .svy-feature-badges{ margin-left:6px; }

/* 관리 컬럼: hover 아이콘 + ⋮ 를 오른쪽 정렬. 컬럼을 넓혀(150px) 아이콘이 문항수 위로 넘치지 않게 함 - 2026-08 */
.row-actions{
	display:flex;
	align-items:center;
	justify-content:center;
	gap:4px;
	min-height:26px;
}
.row-actions-hover{
	display:flex;
	align-items:center;
	gap:12px;
	opacity:0;
	transition:opacity .12s ease;
}
.row-actions-hover button:first-child img{width: 14px; height: 14px;}
.mysvy-table-list tbody tr:hover .row-actions-hover{ opacity:1; }
.row-action-ico{
	display:inline-flex;
	align-items:center;
	justify-content:center;
	width:26px;
	height:26px;
	border:none;
	background:none;
	cursor:pointer;
	border-radius:var(--svy2-radius-sm);
}
.row-action-ico:hover{ background:var(--svy2-muted-soft); }
.row-action-ico img{ width:16px; height:16px; }
.row-overflow{ position:relative; }
.row-overflow-btn{
	width:26px;
	height:26px;
	border:none;
	background:none;
	color:var(--svy2-text-sub);
	font-size:16px;
	line-height:1;
	cursor:pointer;
	border-radius:var(--svy2-radius-sm);
}
.row-overflow-btn:hover{ background:var(--svy2-muted-soft); }
.row-overflow-menu{
	position:absolute;
	top:28px;
	right:0;
	z-index:40;
	min-width:120px;
	background:var(--svy2-card-bg);
	border:1px solid var(--svy2-border);
	border-radius:var(--svy2-radius-sm);
	box-shadow:0 8px 24px rgba(0,0,0,.1);
	padding:4px;
	text-align:left;
}
.row-overflow-menu a{
	display:flex;
	align-items:center;
	gap:8px;
	padding:7px 10px;
	font-size:13px;
	color:var(--svy2-text);
	border-radius:var(--svy2-radius-sm);
}
.row-overflow-menu a:hover{ background:var(--svy2-muted-soft); }
.row-overflow-menu a svg{ width:14px; height:14px; flex-shrink:0; }
.row-overflow-menu a:last-child svg{ opacity:.75; }

/* ---------------------------------------------------------------------------
   데스크톱 그리드/카드 뷰
--------------------------------------------------------------------------- */
.mysvy-grid-view{
	margin-bottom:16px;
}
/* 카드 부모(#g_svy_list)를 그리드로 - 기본 4열, 좁은 화면에서 3/2열 */
.mysvy-grid-view #g_svy_list{
	display:grid;
	grid-template-columns:repeat(4, minmax(0, 1fr));
	gap:14px;
}
@media (max-width:1280px){
	.mysvy-grid-view #g_svy_list{ grid-template-columns:repeat(3, minmax(0,1fr)); }
}
@media (max-width:960px){
	.mysvy-grid-view #g_svy_list{ grid-template-columns:repeat(2, minmax(0,1fr)); }
}
.mysvy-grid-view #g_svy_list .no-data{
	grid-column:1 / -1;
	padding:40px 0;
	text-align:center;
	color:var(--svy2-text-sub);
}
.grid-card{
	position:relative;
	padding:16px 18px 54px;
	background:var(--svy2-card-bg);
	border:1px solid var(--svy2-border);
	border-radius:var(--svy2-radius);
	transition:box-shadow .15s ease, border-color .15s ease;
	cursor: pointer;
}
.grid-card:hover{ box-shadow:0 4px 16px rgba(0,0,0,.06); }
.grid-card.is-selected{
	border-color:#6C5CE7;
	box-shadow:0 4px 16px rgba(108,92,231,.16);
}
/* 상단: 체크박스(좌) + ⋮ 오버플로우(우) */
.grid-card-top{
	display:flex;
	align-items:center;
	justify-content:flex-end;
	margin-bottom:10px;
}
.grid-card-top .row-actions{
	position:absolute;
	right:14px;
	bottom:12px;
	margin-left:0;
	justify-content:flex-end;
	z-index:3;
}
.mysvy-grid-view .grid-card:hover .row-actions-hover{ opacity:1; }
/* 제목(좌) + 상태 pill(우) */
.grid-card-head{
	display:flex;
	align-items:center;
	gap:8px;
	margin-bottom:14px;
}
.grid-card-title{
	flex:1 1 auto;
	min-width:0;
	font-size:15px;
	font-weight:600;
	color:var(--svy2-text-strong);
	cursor:pointer;
	white-space:nowrap;
	overflow:hidden;
	text-overflow:ellipsis;
}
.grid-card-title:hover{ color:var(--svy2-primary); }
.grid-card-head .status-pill{ flex-shrink:0; }
/* 메타: 라벨 + 값 세로 목록 */
.grid-card-meta{
	display:flex;
	flex-direction:column;
	gap:8px;
}
.gmeta-row{
	display:flex;
	align-items:center;
	font-size:13px;
	line-height:1.3;
}
.gmeta-label{
	width:56px;
	flex-shrink:0;
	color:var(--svy2-text-sub);
}
.gmeta-val{
	color:var(--svy2-text);
	font-weight:500;
}

/* ---------------------------------------------------------------------------
   벌크 액션바 (선택된 항목 있을 때 하단 고정)
--------------------------------------------------------------------------- */
.bulk-action-bar{
	position:sticky;
	bottom:16px;
	z-index:30;
	display:flex;
	align-items:center;
	justify-content:flex-start;
	gap:20px;
	margin-top:12px;
	padding:12px 20px;
	background:#3b3b45;
	color:#fff;
	border-radius:10px;
	box-shadow:0 10px 28px rgba(0,0,0,.25);
}
.bulk-action-bar .bulk-close{
	width:26px;
	height:26px;
	display:inline-flex;
	align-items:center;
	justify-content:center;
	border:none;
	background:none;
	color:#fff;
	font-size:20px;
	line-height:1;
	cursor:pointer;
	border-radius:6px;
	flex-shrink:0;
}
.bulk-action-bar .bulk-close:hover{ background:rgba(255,255,255,.14); }
.bulk-action-bar .bulk-count{ font-size:14px; }
.bulk-action-bar .bulk-count b{ color:#fff; font-weight:700; }
.bulk-btn{
	display:inline-flex;
	align-items:center;
	gap:6px;
	padding:6px 10px;
	border-radius:6px;
	border:none;
	background:none;
	color:#fff;
	font-size:14px;
	cursor:pointer;
}
.bulk-btn:hover{ background:rgba(255,255,255,.14); }
.bulk-btn svg{ width:15px; height:15px; flex-shrink:0; }
.bulk-btn svg path{ fill:#fff; }

/* 선택된 체크박스 색상 - 레퍼런스 #6A68D7 */
.svy-list-shell input[type="checkbox"]{
	accent-color:#6A68D7;
	width:16px;
	height:16px;
	cursor:pointer;
	vertical-align:middle;
}

/* ---------------------------------------------------------------------------
   폴더 만들기 모달 - MY설문함 renewal 2026-07
--------------------------------------------------------------------------- */
.folder-modal-overlay{
	position:fixed;
	inset:0;
	z-index:100000;
	background:rgba(24,24,27,.45);
	display:flex;
	align-items:center;
	justify-content:center;
	padding:20px;
}
body.folder-modal-open{ overflow:hidden; }
.folder-modal{
	width:100%;
	max-width:440px;
	box-sizing:border-box;
	padding:28px;
	background:var(--svy2-card-bg);
	border:1px solid var(--svy2-border);
	border-radius:20px;
	box-shadow:0 20px 55px rgba(24,24,27,.22);
	font-family:var(--svy2-font);
}
.folder-modal-head{
	display:flex;
	align-items:center;
	justify-content:space-between;
	gap:12px;
	margin-bottom:26px;
}
.folder-modal-title{ font-size:22px; font-weight:700; color:var(--svy2-text-strong); }
.folder-modal-close{
	width:32px;
	height:32px;
	border:none;
	border-radius:50%;
	background:transparent;
	color:var(--svy2-text-sub);
	font-size:24px;
	line-height:1;
	cursor:pointer;
	flex-shrink:0;
}
.folder-modal-close:hover{
	background:var(--svy2-muted-soft);
	color:var(--svy2-text);
}
.folder-modal-body{ margin-bottom:28px; }
/* #id 로 스코프하여 전역 input[type="text"] (svy_v4.css: border-top/left/right:0, height:20px) 오버라이드 */
#folder_create_modal .folder-modal-input{
	width:100%;
	box-sizing:border-box;
	height:54px;
	padding:0 18px;
	border:1px solid var(--svy2-border);
	border-radius:14px;
	font-size:15px;
	line-height:normal;
	color:var(--svy2-text);
	background:#ffffff;
	outline:none;
	transition:border-color .15s ease;
}
#folder_create_modal .folder-modal-input::placeholder{ color:var(--svy2-text-sub); }
#folder_create_modal .folder-modal-input:focus{ border:1px solid var(--svy2-primary); }
.folder-modal-foot{
	display:flex;
	gap:10px;
	justify-content:flex-end;
}
.folder-modal-btn{
	height:48px;
	padding:0 26px;
	border-radius:12px;
	font-size:16px;
	font-weight:700;
	cursor:pointer;
	border:none;
}
.folder-modal-btn.cancel{ background:var(--svy2-muted-soft); color:var(--svy2-text-sub); }
.folder-modal-btn.confirm{ background:var(--svy2-primary); color:#ffffff; }
.folder-modal-btn.confirm:hover{ filter:brightness(.96); }

/* KPI 응답 설문 View 모달 - MY설문함 2026-08 */
.kpi-response-modal{
	width:min(560px, 92vw);
	max-height:min(72vh, 640px);
	display:flex;
	flex-direction:column;
}
.kpi-response-modal-body{
	margin-bottom:0;
	min-height:0;
	overflow:auto;
}
.kpi-response-list{
	display:flex;
	flex-direction:column;
	gap:8px;
}
.kpi-response-empty{
	padding:28px 8px;
	text-align:center;
	color:var(--svy2-text-sub);
	font-size:14px;
}
.kpi-response-row{
	display:flex;
	align-items:center;
	justify-content:space-between;
	gap:12px;
	padding:12px 14px;
	border:1px solid var(--svy2-border);
	border-radius:var(--svy2-radius-sm);
	background:#fff;
}
.kpi-response-main{
	min-width:0;
	flex:1 1 auto;
	display:flex;
	flex-direction:column;
	gap:4px;
}
.kpi-response-title{
	color:var(--svy2-text-strong);
	font-size:14px;
	font-weight:600;
	white-space:nowrap;
	overflow:hidden;
	text-overflow:ellipsis;
	text-decoration:none;
}
.kpi-response-title:hover{ color:var(--svy2-primary); }
.kpi-response-cnt{
	font-size:12px;
	color:var(--svy2-text-sub);
}
.kpi-response-cnt b{ color:var(--svy2-text-strong); font-weight:700; }
.kpi-response-actions{
	flex-shrink:0;
	display:inline-flex;
	gap:10px;
}
.kpi-response-actions a{
	font-size:12px;
	font-weight:600;
	color:var(--svy2-primary);
	text-decoration:none;
}
.kpi-response-actions a:hover{ text-decoration:underline; }

/* ---------------------------------------------------------------------------
   프로필 드롭다운(마이페이지/로그아웃) - MY설문함 renewal 2026-07
--------------------------------------------------------------------------- */
#dropdown-menu-user.dropdown-content{
	min-width:180px;
	padding:8px;
	margin-top:10px;
	background:var(--svy2-card-bg);
	border:1.5px solid var(--svy2-primary);
	border-radius:14px;
	box-shadow:0 12px 30px rgba(24,24,27,.16);
	overflow:hidden;
}
#dropdown-menu-user.dropdown-content li{ margin:0; }
#dropdown-menu-user.dropdown-content li a{
	display:flex;
	align-items:center;
	gap:12px;
	padding:12px 14px;
	border-radius:10px;
	font-size:15px;
	font-weight:600;
	color:var(--svy2-text);
	line-height:1;
}
#dropdown-menu-user.dropdown-content li a:hover{
	background:var(--svy2-primary-soft);
}
#dropdown-menu-user .dd-ico{
	display:inline-flex;
	align-items:center;
	justify-content:center;
	width:22px;
	height:22px;
	flex-shrink:0;
}
#dropdown-menu-user .dd-ico svg{ width:22px; height:22px; display:block; }
#dropdown-menu-user .dd-ico svg path{ fill:var(--svy2-text); }
#dropdown-menu-user .dd-text{ display:inline-block; }
