@charset "UTF-8";
/* ══════════════════════════════════════════════════════════
   먹튀의민족 · 사이트평가
   기존 디자인 언어 재사용 : WHITE BASE / BLACK TEXT / MINT POINT
   (그라디언트·글래스·네온·과한 그림자 사용하지 않는다)
   ══════════════════════════════════════════════════════════ */
.sv {
	--v-ink:    #16212B;
	--v-ink-2:  #4A5C6A;
	--v-ink-3:  #93A5B2;
	--v-line:   #E8EEF3;
	--v-line-2: #DCE5EC;
	--v-card:   #ffffff;
	--v-soft:   #F7FBFE;
	--v-mint:   #0CEFD3;
	--v-mint-d: #00857F;
	--v-orange: #E8892E;
	--v-red:    #E9544A;
	--v-shadow: 0 2px 10px rgba(17, 17, 17, .035);
	--v-r:      14px;

	color: var(--v-ink);
	margin-bottom: 56px;
}
:root[data-theme="dark"] .sv {
	--v-ink:    #EAF6F4;
	--v-ink-2:  #A8BFBC;
	--v-ink-3:  #7E9A97;
	--v-line:   rgba(12, 239, 211, .16);
	--v-line-2: rgba(12, 239, 211, .26);
	--v-card:   #0C1215;
	--v-soft:   #121A1E;
	--v-mint-d: #0CEFD3;
	--v-shadow: none;
}
.sv .mute { color: var(--v-ink-3); font-weight: 400; }

/* ── 히어로 ── */
.sv-hero { padding: 6px 0 22px; text-align: center; }
.sv-hero h1 { margin: 0 0 8px; font-size: 27px; font-weight: 800; letter-spacing: -.035em; }
.sv-hero > p { margin: 0 0 20px; font-size: 14.5px; line-height: 1.7; color: var(--v-ink-2); word-break: keep-all; }

.sv-sch {
	position: relative;
	display: flex;
	align-items: center;
	gap: 10px;
	max-width: 620px;
	margin: 0 auto;
	padding: 0 6px 0 18px;
	height: 54px;
	border: 1px solid var(--v-mint-d);
	border-radius: 999px;
	background: var(--v-card);
}
.sv-sch > svg { flex: 0 0 auto; width: 19px; height: 19px; color: var(--v-ink-3); }
.sv-sch input {
	flex: 1 1 auto;
	min-width: 0;
	height: 100%;
	border: 0;
	background: none;
	color: var(--v-ink);
	font-family: inherit;
	font-size: 15px;
	outline: none;
}
.sv-sch input::placeholder { color: var(--v-ink-3); }
.sv-sch button {
	flex: 0 0 auto;
	height: 42px;
	padding: 0 24px;
	border: 0;
	border-radius: 999px;
	background: #0B6B65;
	color: #fff;
	font-family: inherit;
	font-size: 15px;
	font-weight: 700;
	cursor: pointer;
}
.sv-sch button:hover { filter: brightness(1.12); }
.sv-sch-ex { margin: 10px 0 0; font-size: 12.5px; color: var(--v-ink-3); }

/* 자동완성 */
.sv-auto {
	position: absolute;
	left: 0; right: 0; top: calc(100% + 6px);
	z-index: 30;
	padding: 6px;
	border: 1px solid var(--v-line-2);
	border-radius: 12px;
	background: var(--v-card);
	box-shadow: 0 8px 24px -14px rgba(17, 17, 17, .35);
	text-align: left;
}
.sv-auto a {
	display: flex;
	align-items: baseline;
	gap: 8px;
	padding: 9px 12px;
	border-radius: 8px;
	font-size: 14px;
	color: var(--v-ink);
}
.sv-auto a:hover { background: var(--v-soft); }
.sv-auto a b { font-weight: 700; }
.sv-auto a span { font-size: 12.5px; color: var(--v-ink-3); }

/* ── 카테고리 · 정렬 ── */
.sv-cate { display: flex; flex-wrap: wrap; gap: 6px; margin: 26px 0 14px; }
.sv-cate a {
	display: inline-flex;
	align-items: center;
	height: 36px;
	padding: 0 18px;
	border: 1px solid var(--v-line-2);
	border-radius: 999px;
	background: var(--v-card);
	color: var(--v-ink-2);
	font-size: 14px;
	font-weight: 600;
	transition: all .15s;
}
.sv-cate a:hover { border-color: var(--v-mint); color: var(--v-mint-d); }
.sv-cate a.on { background: #16212B; border-color: #16212B; color: #fff; font-weight: 700; }
:root[data-theme="dark"] .sv-cate a.on { background: var(--v-mint); border-color: var(--v-mint); color: #04201C; }

.sv-bar { display: flex; align-items: center; justify-content: space-between; gap: 12px; flex-wrap: wrap; margin-bottom: 14px; }
.sv-cnt { margin: 0; font-size: 13.5px; color: var(--v-ink-2); }
.sv-cnt b { color: var(--v-ink); font-weight: 800; }
.sv-sort select {
	height: 36px;
	padding: 0 32px 0 12px;
	border: 1px solid var(--v-line-2);
	border-radius: 9px;
	background: var(--v-card);
	color: var(--v-ink-2);
	font-family: inherit;
	font-size: 13.5px;
	font-weight: 600;
	cursor: pointer;
}

/* ── 카드 그리드 ── */
.sv-grid {
	display: grid;
	grid-template-columns: repeat(4, minmax(0, 1fr));
	gap: 14px;
	margin: 0;
	padding: 0;
	list-style: none;
}
.sv-card__in {
	display: flex;
	flex-direction: column;
	height: 100%;
	padding: 18px;
	border: 1px solid var(--v-line);
	border-radius: var(--v-r);
	background: var(--v-card);
	box-shadow: var(--v-shadow);
	color: var(--v-ink);
	transition: border-color .15s, transform .15s;
}
.sv-card__in:hover { border-color: var(--v-mint); transform: translateY(-2px); }
.sv-card__top { display: flex; align-items: flex-start; gap: 10px; }
.sv-logo {
	flex: 0 0 auto;
	display: grid;
	place-items: center;
	width: 42px;
	height: 42px;
	border: 1px solid var(--v-line);
	border-radius: 10px;
	background: var(--v-soft);
	overflow: hidden;
	color: var(--v-mint-d);
	font-size: 14px;
	font-weight: 800;
}
.sv-logo img { width: 100%; height: 100%; object-fit: contain; }
.sv-logo.big { width: 68px; height: 68px; border-radius: 14px; font-size: 20px; }
.sv-card__tt { flex: 1 1 auto; min-width: 0; }
.sv-card__tt .nm { margin: 2px 0 3px; font-size: 15.5px; font-weight: 800; letter-spacing: -.03em; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.sv-card__tt .ct { margin: 0; font-size: 12.5px; color: var(--v-ink-2); }

.sv-stat {
	flex: 0 0 auto;
	padding: 3px 9px;
	border-radius: 6px;
	font-size: 11px;
	font-weight: 700;
	white-space: nowrap;
	border: 1px solid transparent;
}
.sv-stat.nm { background: #F1F5F8; color: #5C7386; }
.sv-stat.ck { background: #FFF6E6; color: #A9741B; }
.sv-stat.gt { background: #E6FBF8; color: #00857F; }
.sv-stat.ca { background: #FDEEEC; color: #C33F35; }
:root[data-theme="dark"] .sv-stat.nm { background: rgba(255,255,255,.07); color: var(--v-ink-2); }
:root[data-theme="dark"] .sv-stat.ck { background: rgba(232,163,61,.14); color: #E5B96A; }
:root[data-theme="dark"] .sv-stat.gt { background: rgba(12,239,211,.12); color: var(--v-mint); }
:root[data-theme="dark"] .sv-stat.ca { background: rgba(233,84,74,.14); color: #F0A8A2; }

.sv-card__meta { margin: 14px 0 0; padding: 12px 0 0; border-top: 1px solid var(--v-line); }
.sv-card__meta > div { display: flex; gap: 10px; padding: 3px 0; font-size: 12.5px; }
.sv-card__meta dt { flex: 0 0 62px; color: var(--v-ink-3); }
.sv-card__meta dd { margin: 0; min-width: 0; color: var(--v-ink-2); font-weight: 600; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }

.sv-card__foot { display: flex; flex-wrap: wrap; align-items: center; gap: 4px 10px; margin-top: 12px; font-size: 12px; color: var(--v-ink-3); }
.sv-rate { display: inline-flex; align-items: center; gap: 5px; }
.sv-rate b { color: var(--v-ink); font-size: 13.5px; font-weight: 800; }
.sv-rate.none { color: var(--v-ink-3); }
.sv-dot b { color: var(--v-ink-2); font-weight: 700; }
.sv-dot.warn b { color: var(--v-red); }
.sv-card__go { margin-top: 14px; font-size: 13px; font-weight: 700; color: var(--v-mint-d); }
.sv-card__go em { font-style: normal; }

/* 별점 */
.sv-stars { display: inline-flex; gap: 1px; }
.sv-stars i {
	width: 13px; height: 13px;
	background: var(--v-line-2);
	-webkit-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='m12 2 3.1 6.3 6.9 1-5 4.9 1.2 6.9L12 17.8 5.8 21l1.2-6.9-5-4.9 6.9-1z'/%3E%3C/svg%3E") center/contain no-repeat;
	mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='m12 2 3.1 6.3 6.9 1-5 4.9 1.2 6.9L12 17.8 5.8 21l1.2-6.9-5-4.9 6.9-1z'/%3E%3C/svg%3E") center/contain no-repeat;
}
.sv-stars i.on   { background: #F5A524; }
.sv-stars i.half { background: linear-gradient(90deg, #F5A524 50%, var(--v-line-2) 50%); }

/* ── 빈 상태 ── */
.sv-empty { padding: 60px 20px; text-align: center; border: 1px solid var(--v-line); border-radius: var(--v-r); background: var(--v-card); }
.sv-empty .t { margin: 0 0 8px; font-size: 16px; font-weight: 700; }
.sv-empty .d { margin: 0 0 20px; font-size: 13.5px; line-height: 1.7; color: var(--v-ink-3); word-break: keep-all; }
.sv-empty .b { display: flex; justify-content: center; gap: 8px; flex-wrap: wrap; }
.sv-empty-in { margin: 0; padding: 40px 0; text-align: center; color: var(--v-ink-3); font-size: 14px; }
.sv-empty-in.sm { padding: 24px 0; font-size: 13px; }

/* ── 버튼 ── */
.sv-btn {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	height: 42px;
	padding: 0 20px;
	border: 1px solid var(--v-line-2);
	border-radius: 10px;
	background: var(--v-card);
	color: var(--v-ink-2);
	font-size: 14px;
	font-weight: 700;
	transition: all .15s;
}
.sv-btn:hover { border-color: var(--v-mint); color: var(--v-mint-d); }
.sv-btn.primary { background: #0B6B65; border-color: #0B6B65; color: #fff; }
.sv-btn.primary:hover { filter: brightness(1.12); color: #fff; }
:root[data-theme="dark"] .sv-btn.primary { background: var(--v-mint); border-color: var(--v-mint); color: #04201C; }
.sv-btn.block { display: flex; width: 100%; margin-bottom: 7px; }

/* ── 페이징 ── */
.sv-pg { display: flex; justify-content: center; gap: 5px; margin-top: 26px; }
.sv-pg a, .sv-pg strong {
	min-width: 36px; height: 36px; padding: 0 10px;
	border: 1px solid var(--v-line); border-radius: 9px;
	font-size: 13.5px; font-weight: 600; color: var(--v-ink-2);
	line-height: 34px; text-align: center;
}
.sv-pg strong { background: var(--v-mint); border-color: var(--v-mint); color: #04201C; }
.sv-pg a:hover { border-color: var(--v-mint); color: var(--v-mint-d); }
.sv-pg.sm { margin-top: 16px; }

/* ── 목록 하단 안내 ── */
.sv-guide { margin-top: 34px; padding: 28px 30px 24px; border: 1px solid var(--v-line); border-radius: var(--v-r); background: var(--v-card); }
.sv-guide > h2 { margin: 0 0 18px; font-size: 18px; font-weight: 800; letter-spacing: -.03em; }
.sv-guide__grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 20px 32px; }
.sv-guide__grid h3 { margin: 0 0 6px; font-size: 14.5px; font-weight: 700; }
.sv-guide__grid p { margin: 0; font-size: 13.5px; line-height: 1.8; color: var(--v-ink-2); word-break: keep-all; }

/* ══════ 상세 ══════ */
.sv-crumb { display: flex; align-items: center; gap: 6px; margin-bottom: 14px; font-size: 12.5px; color: var(--v-ink-3); }
.sv-crumb a { color: var(--v-ink-3); }
.sv-crumb a:hover { color: var(--v-mint-d); }
.sv-crumb em { font-style: normal; opacity: .5; }

.sv-top {
	display: flex;
	flex-wrap: wrap;
	align-items: flex-start;
	gap: 18px;
	padding: 24px 26px;
	border: 1px solid var(--v-line);
	border-radius: var(--v-r);
	background: var(--v-card);
	box-shadow: var(--v-shadow);
}
.sv-top__tx { flex: 1 1 320px; min-width: 0; }
.sv-top__tx h1 { margin: 0 0 4px; font-size: 24px; font-weight: 800; letter-spacing: -.035em; }
.sv-top__tx h1 span { font-size: 14px; font-weight: 600; color: var(--v-ink-3); letter-spacing: -.02em; }
.sv-top__cate { margin: 0 0 14px; font-size: 13.5px; color: var(--v-ink-2); }
.sv-top__meta { display: flex; flex-wrap: wrap; gap: 8px 26px; margin: 0; padding: 0; list-style: none; }
.sv-top__meta li { display: flex; flex-direction: column; gap: 4px; }
.sv-top__meta span { font-size: 11.5px; color: var(--v-ink-3); }
.sv-top__meta b { font-size: 14px; font-weight: 700; }
.sv-top__meta b.sv-stat { font-size: 11px; width: fit-content; }
.sv-top__meta em { font-style: normal; }

.sv-badge-gt {
	display: inline-flex; align-items: center; gap: 6px;
	margin-top: 14px; padding: 6px 13px;
	border: 1px solid #C8F3EC; border-radius: 999px;
	background: #E6FBF8; color: #00857F;
	font-size: 12.5px; font-weight: 800;
}
.sv-badge-gt svg { width: 15px; height: 15px; }
:root[data-theme="dark"] .sv-badge-gt { background: rgba(12,239,211,.1); border-color: var(--v-line-2); color: var(--v-mint); }

.sv-top__btns { flex: 0 0 auto; display: flex; flex-wrap: wrap; gap: 7px; align-content: flex-start; }

.sv-cols { display: grid; grid-template-columns: minmax(0, 1fr) 316px; gap: 18px; align-items: start; margin-top: 18px; }
.sv-box {
	padding: 24px 26px 22px;
	margin-bottom: 16px;
	border: 1px solid var(--v-line);
	border-radius: var(--v-r);
	background: var(--v-card);
	box-shadow: var(--v-shadow);
}
.sv-side .sv-box { padding: 20px; }
.sv-h2 { position: relative; margin: 0 0 16px; padding-left: 12px; font-size: 17px; font-weight: 800; letter-spacing: -.03em; }
.sv-h2::before { content: ""; position: absolute; left: 0; top: 4px; bottom: 4px; width: 4px; border-radius: 2px; background: var(--v-mint); }
.sv-h2.sm { font-size: 15px; margin-bottom: 12px; }
.sv-h2n { margin-left: 4px; font-size: 13px; font-weight: 700; color: var(--v-mint-d); }

.sv-def > div { display: flex; gap: 14px; padding: 9px 0; border-bottom: 1px solid var(--v-line); font-size: 13.5px; }
.sv-def > div:last-child { border-bottom: 0; }
.sv-def dt { flex: 0 0 118px; color: var(--v-ink-3); }
.sv-def dd { margin: 0; min-width: 0; color: var(--v-ink); font-weight: 600; word-break: break-all; }
.sv-def.sm > div { padding: 7px 0; font-size: 13px; }
.sv-def.sm dt { flex-basis: 78px; }
.sv-olds { display: flex; flex-wrap: wrap; gap: 6px; }
.sv-olds span { display: inline-flex; align-items: center; gap: 5px; padding: 3px 9px; border: 1px solid var(--v-line-2); border-radius: 6px; font-size: 12.5px; font-weight: 600; }
.sv-olds em { font-style: normal; font-size: 11px; color: var(--v-ink-3); font-weight: 400; }
.sv-intro { margin: 14px 0 0; font-size: 13.5px; line-height: 1.8; color: var(--v-ink-2); word-break: keep-all; }
.sv-caution { margin: 14px 0 0; padding: 11px 14px; border-radius: 9px; background: var(--v-soft); font-size: 12px; line-height: 1.7; color: var(--v-ink-3); word-break: keep-all; }
.sv-caution.sm { margin-top: 10px; font-size: 11.5px; }

/* 평점 */
.sv-score { display: flex; flex-wrap: wrap; gap: 26px; align-items: center; }
.sv-score__big { flex: 0 0 auto; text-align: center; }
.sv-score__big b { font-size: 40px; font-weight: 800; letter-spacing: -.04em; }
.sv-score__big span { margin-left: 3px; font-size: 14px; color: var(--v-ink-3); }
.sv-score__big .sv-stars { display: flex; justify-content: center; margin-top: 6px; }
.sv-score__big .sv-stars i { width: 17px; height: 17px; }
.sv-score__big p { margin: 8px 0 0; font-size: 12.5px; color: var(--v-ink-3); }
.sv-score__big p b { font-size: 13px; color: var(--v-ink-2); }
.sv-score__items { flex: 1 1 260px; margin: 0; padding: 0; list-style: none; }
.sv-score__items li { display: flex; align-items: center; gap: 10px; padding: 5px 0; font-size: 13px; }
.sv-score__items .k { flex: 0 0 92px; color: var(--v-ink-2); }
.sv-score__items .bar { flex: 1 1 auto; height: 7px; border-radius: 999px; background: var(--v-soft); overflow: hidden; }
.sv-score__items .bar i { display: block; height: 100%; border-radius: 999px; background: var(--v-mint-d); }
.sv-score__items b { flex: 0 0 30px; text-align: right; font-weight: 800; }

/* 품평 작성 */
.sv-login { padding: 24px; border: 1px dashed var(--v-line-2); border-radius: 12px; text-align: center; }
.sv-login p { margin: 0 0 14px; font-size: 14px; color: var(--v-ink-2); }
.sv-form { padding: 20px; margin-bottom: 20px; border: 1px solid var(--v-line-2); border-radius: 12px; background: var(--v-soft); }
.sv-form__lead { margin: 0 0 16px; font-size: 14px; color: var(--v-ink-2); }
.sv-form__lead b { color: var(--v-ink); }
.sv-form__lead em { display: block; margin-top: 5px; font-style: normal; font-size: 12.5px; color: var(--v-mint-d); }
.sv-form__items { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 10px 22px; margin: 0 0 14px; padding: 0; list-style: none; }
.sv-form__items li { display: flex; align-items: center; gap: 10px; }
.sv-form__items .k { flex: 0 0 82px; font-size: 13px; color: var(--v-ink-2); }
.sv-form__items .pick { display: flex; flex-direction: row-reverse; justify-content: flex-end; gap: 3px; }
.sv-form__items .pick input { position: absolute; width: 1px; height: 1px; opacity: 0; }
.sv-form__items .pick label {
	display: grid; place-items: center;
	width: 28px; height: 28px;
	border: 1px solid var(--v-line-2); border-radius: 7px;
	background: var(--v-card);
	font-size: 12.5px; font-weight: 700; color: var(--v-ink-3);
	cursor: pointer; transition: all .12s;
}
.sv-form__items .pick input:checked ~ label,
.sv-form__items .pick label:hover { background: var(--v-mint); border-color: var(--v-mint); color: #04201C; }
.sv-form__items .pick input:focus-visible + label { outline: 2px solid var(--v-mint-d); outline-offset: 2px; }
.sv-form textarea {
	width: 100%;
	box-sizing: border-box;
	padding: 12px 14px;
	border: 1px solid var(--v-line-2);
	border-radius: 10px;
	background: var(--v-card);
	color: var(--v-ink);
	font-family: inherit;
	font-size: 14px;
	line-height: 1.7;
	resize: vertical;
	outline: none;
}
.sv-form textarea:focus { border-color: var(--v-mint); box-shadow: 0 0 0 3px rgba(12, 239, 211, .16); }
.sv-form__foot { display: flex; align-items: center; justify-content: space-between; gap: 12px; flex-wrap: wrap; margin-top: 12px; }
.sv-form__note { margin: 0; font-size: 12px; color: var(--v-ink-3); }

/* 품평 목록 */
.sv-rv { margin: 0; padding: 0; list-style: none; }
.sv-rv li { padding: 15px 2px; border-top: 1px solid var(--v-line); }
.sv-rv__h { display: flex; align-items: center; flex-wrap: wrap; gap: 8px; }
.sv-rv__h .nk { font-size: 13.5px; font-weight: 700; }
.sv-rv__h .dt { margin-left: auto; font-size: 12px; color: var(--v-ink-3); }
.sv-rv__h .hd { font-size: 11.5px; color: var(--v-ink-3); }
.sv-rv__h .hd:hover { color: var(--v-red); }
.sv-rv__c { margin: 8px 0 0; font-size: 14px; line-height: 1.75; color: var(--v-ink-2); word-break: break-word; }

/* 연결 게시글 */
.sv-links { margin: 0; padding: 0; list-style: none; }
.sv-links li { border-top: 1px solid var(--v-line); }
.sv-links li:first-child { border-top: 0; }
.sv-links a { display: flex; align-items: center; gap: 12px; padding: 13px 2px; }
.sv-links .tt { flex: 1 1 auto; min-width: 0; font-size: 14px; font-weight: 600; color: var(--v-ink); overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.sv-links a:hover .tt { color: var(--v-mint-d); }
.sv-links .bd { display: inline-block; margin-right: 7px; padding: 2px 8px; border-radius: 5px; background: rgba(12,239,211,.1); color: var(--v-mint-d); font-size: 11px; font-style: normal; font-weight: 700; }
.sv-links .mt { flex: 0 0 auto; display: flex; align-items: center; gap: 8px; font-size: 12px; color: var(--v-ink-3); }
.sv-links .mn { font-style: normal; color: var(--v-red); font-weight: 700; }
.sv-more { display: inline-block; margin-top: 14px; font-size: 13px; font-weight: 700; color: var(--v-mint-d); }

/* 제휴 */
.sv-partner { border-color: var(--v-line-2); }
.sv-partner__m { margin: 10px 0 0; font-size: 12.5px; line-height: 1.7; color: var(--v-ink-2); }
.sv-code { display: inline-block; padding: 2px 9px; border-radius: 6px; background: #FFF4E5; color: #A9660F; font-size: 13px; font-weight: 800; letter-spacing: .04em; }
:root[data-theme="dark"] .sv-code { background: rgba(232,137,46,.16); color: #E7A863; }

/* 변경이력 */
.sv-log { margin: 0; padding: 0 0 0 14px; list-style: none; border-left: 2px solid var(--v-line); }
.sv-log li { position: relative; padding: 0 0 16px 8px; }
.sv-log li::before { content: ""; position: absolute; left: -21px; top: 5px; width: 8px; height: 8px; border-radius: 50%; background: var(--v-mint); }
.sv-log .d { font-size: 11.5px; color: var(--v-ink-3); }
.sv-log .t { margin: 2px 0 0; font-size: 13.5px; font-weight: 700; }
.sv-log .c { margin: 4px 0 0; font-size: 12.5px; color: var(--v-ink-2); word-break: break-all; }
.sv-log .c em { font-style: normal; color: var(--v-ink-3); text-decoration: line-through; }

.sv-act__n { margin: 10px 0 0; font-size: 12px; color: var(--v-ink-3); text-align: center; }

/* ══════ 반응형 (기존 breakpoint 체계에 맞춤) ══════ */
@media (max-width: 1180px) { .sv-grid { grid-template-columns: repeat(3, minmax(0, 1fr)); } }
@media (max-width: 1024px) {
	.sv-cols { grid-template-columns: minmax(0, 1fr); }
	.sv-side { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 0 16px; }
}
@media (max-width: 860px) {
	.sv-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
	.sv-guide__grid { grid-template-columns: minmax(0, 1fr); gap: 16px; }
	.sv-guide { padding: 22px 18px 20px; }
	.sv-form__items { grid-template-columns: minmax(0, 1fr); }
}
@media (max-width: 640px) {
	.sv-grid { grid-template-columns: minmax(0, 1fr); }
	.sv-side { grid-template-columns: minmax(0, 1fr); }
	.sv-hero h1 { font-size: 22px; }
	.sv-sch { height: 48px; padding-left: 14px; }
	.sv-sch button { height: 38px; padding: 0 16px; font-size: 14px; }
	.sv-top { padding: 18px 16px; gap: 14px; }
	.sv-top__tx h1 { font-size: 20px; }
	.sv-top__tx h1 span { display: block; margin-top: 3px; }
	.sv-top__btns { width: 100%; }
	.sv-top__btns .sv-btn { flex: 1 1 calc(50% - 4px); min-width: 0; padding: 0 10px; font-size: 13px; }
	.sv-top__btns .sv-btn.primary { flex-basis: 100%; }
	.sv-box { padding: 18px 16px 16px; }
	.sv-def > div { flex-direction: column; gap: 3px; }
	.sv-def dt { flex-basis: auto; }
	.sv-score { gap: 18px; }
	.sv-score__big { flex: 1 1 100%; }
	.sv-links a { flex-wrap: wrap; gap: 4px; }
	.sv-links .mt { width: 100%; }
}

/* ══════════════════════════════════════════════════════════
   한눈에 보기 (목록 상단 KPI) — 전부 실제 집계값
   ══════════════════════════════════════════════════════════ */
.sv-kpi { margin: 24px 0 8px; }
.sv-kpi__h { display: flex; align-items: baseline; gap: 10px; margin-bottom: 12px; flex-wrap: wrap; }
.sv-kpi__h h2 { margin: 0; font-size: 17px; font-weight: 800; letter-spacing: -.03em; }
.sv-kpi__h p { margin: 0; font-size: 12px; color: var(--v-ink-3); }
.sv-kpi ul { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 12px; margin: 0; padding: 0; list-style: none; }
.sv-kpi li {
	padding: 18px 20px 16px;
	border: 1px solid var(--v-line);
	border-radius: var(--v-r);
	background: var(--v-card);
	box-shadow: var(--v-shadow);
}
.sv-kpi .k { display: flex; align-items: center; gap: 8px; margin: 0 0 8px; font-size: 13px; font-weight: 700; color: var(--v-ink-2); }
.sv-kpi .ic {
	flex: 0 0 auto; width: 28px; height: 28px; border-radius: 8px;
	background: #E6FBF8; color: var(--v-mint-d);
	display: grid; place-items: center;
}
.sv-kpi .ic::before {
	content: ""; width: 15px; height: 15px; background: currentColor;
	-webkit-mask-position: center; mask-position: center;
	-webkit-mask-repeat: no-repeat; mask-repeat: no-repeat;
	-webkit-mask-size: contain; mask-size: contain;
}
.sv-kpi .ic-db::before   { -webkit-mask-image: var(--m-db);   mask-image: var(--m-db); }
.sv-kpi .ic-star::before { -webkit-mask-image: var(--m-star); mask-image: var(--m-star); }
.sv-kpi .ic-cal::before  { -webkit-mask-image: var(--m-cal);  mask-image: var(--m-cal); }
.sv-kpi .ic-chat::before { -webkit-mask-image: var(--m-chat); mask-image: var(--m-chat); }
.sv-kpi li.or .ic { background: #FFF4E5; color: #C07A16; }
.sv-kpi .v { display: block; font-size: 30px; font-weight: 800; letter-spacing: -.04em; line-height: 1.1; }
.sv-kpi li.or .v { color: #C07A16; }
.sv-kpi .s { margin: 6px 0 9px; font-size: 12px; color: var(--v-ink-3); }
.sv-kpi .s b { color: var(--v-ink-2); font-weight: 700; }
.sv-kpi .bar { display: block; height: 4px; border-radius: 999px; background: var(--v-soft); overflow: hidden; }
.sv-kpi .bar i { display: block; height: 100%; border-radius: 999px; background: var(--v-mint-d); }
.sv-kpi li.or .bar i { background: #E8A33D; }
.sv-kpi a { display: block; margin-top: 12px; padding-top: 11px; border-top: 1px solid var(--v-line); font-size: 12.5px; font-weight: 700; color: var(--v-ink-2); }
.sv-kpi a:hover { color: var(--v-mint-d); }
.sv-kpi a em { font-style: normal; }

/* ══════════════════════════════════════════════════════════
   상세 : 프로필 카드
   ══════════════════════════════════════════════════════════ */
.sv-hd { padding: 20px 22px; border: 1px solid var(--v-line); border-radius: var(--v-r); background: var(--v-card); box-shadow: var(--v-shadow); }
.sv-hd__top { display: flex; align-items: flex-start; gap: 18px; }
.sv-hd__logo {
	flex: 0 0 auto; display: grid; place-items: center;
	width: 168px; height: 84px; overflow: hidden;
	border: 1px solid var(--v-line); border-radius: 10px; background: var(--v-soft);
	color: var(--v-mint-d); font-size: 22px; font-weight: 800;
}
.sv-hd__logo img { width: 100%; height: 100%; object-fit: contain; }
.sv-hd__logo em { display: block; margin-top: 4px; font-size: 10.5px; font-style: normal; font-weight: 500; color: var(--v-ink-3); }
.sv-hd__tx { flex: 1 1 auto; min-width: 0; }
/* h1 이지만 크기·굵기는 안쪽 b 가 정한다 (기존 모양 유지) */
.sv-hd__name { display: flex; align-items: baseline; gap: 9px; flex-wrap: wrap; margin: 2px 0 6px; font-size: 23px; font-weight: 400; line-height: 1.3; }
.sv-hd__name .ct { font-size: 12.5px; font-weight: 700; color: var(--v-ink-3); }
.sv-hd__name b { font-size: 23px; font-weight: 800; letter-spacing: -.035em; }
.sv-hd__intro { margin: 0 0 12px; font-size: 13.5px; color: var(--v-ink-2); }
.sv-hd__meta { display: flex; align-items: center; gap: 9px; flex-wrap: wrap; font-size: 12.5px; color: var(--v-ink-3); }
.sv-hd__meta .av { font-size: 14px; font-weight: 800; color: var(--v-ink); }
.sv-hd__meta .cnt { margin-left: auto; }
.sv-hd__btns { display: flex; gap: 8px; margin-top: 16px; }
.sv-go {
	flex: 1 1 auto; display: inline-flex; align-items: center; justify-content: center; gap: 6px;
	height: 46px; padding: 0 18px;
	border: 1px solid var(--v-line-2); border-radius: 10px; background: var(--v-soft);
	color: var(--v-ink-2); font-size: 14px; font-weight: 700;
}
.sv-go:hover { border-color: var(--v-mint); color: var(--v-mint-d); }
.sv-go span { font-weight: 800; color: var(--v-ink); }
.sv-go.off { color: var(--v-ink-3); cursor: default; }
.sv-hd__btns .sv-btn { flex: 0 0 auto; height: 46px; }
.sv-hd .sv-badge-gt { margin-top: 12px; }

.sv-row2 { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); gap: 16px; align-items: start; margin-top: 16px; }
.sv-detail .sv-box { margin-bottom: 0; }
.sv-detail > .sv-box { margin-top: 16px; }

/* 업체 정보 */
.sv-info > div { display: flex; gap: 14px; align-items: center; padding: 11px 0; border-bottom: 1px solid var(--v-line); font-size: 13.5px; }
.sv-info > div:last-child { border-bottom: 0; }
.sv-info dt { flex: 0 0 92px; color: var(--v-ink-3); }
.sv-info dd { margin: 0; min-width: 0; color: var(--v-ink); font-weight: 600; word-break: break-all; }
.sv-info.sm > div { padding: 8px 0; font-size: 13px; }
.sv-info .tag { display: inline-block; margin-right: 5px; padding: 3px 10px; border-radius: 6px; background: #FDEEEC; color: #C33F35; font-size: 11.5px; font-style: normal; font-weight: 800; }
:root[data-theme="dark"] .sv-info .tag { background: rgba(233,84,74,.14); color: #F0A8A2; }

/* 평점 분포 */
.sv-dist__sum { display: flex; align-items: baseline; gap: 8px; margin-bottom: 14px; }
.sv-dist__sum b { font-size: 30px; font-weight: 800; letter-spacing: -.04em; }
.sv-dist__sum span { font-size: 13px; color: var(--v-ink-3); }
.sv-dist__sum em { margin-left: auto; font-style: normal; font-size: 12.5px; color: var(--v-ink-3); }
.sv-dist { margin: 0; padding: 0; list-style: none; }
.sv-dist li { display: flex; align-items: center; gap: 10px; padding: 4px 0; font-size: 12.5px; }
.sv-dist .k { flex: 0 0 auto; min-width: 30px; color: var(--v-ink-3); font-weight: 700; }
.sv-dist .bar { flex: 1 1 auto; height: 7px; border-radius: 999px; background: var(--v-soft); overflow: hidden; }
.sv-dist .bar i { display: block; height: 100%; border-radius: 999px; background: #E8A33D; }
.sv-dist b { flex: 0 0 28px; text-align: right; font-weight: 700; color: var(--v-ink-2); }
.sv-dist.items { margin-top: 14px; padding-top: 12px; border-top: 1px solid var(--v-line); }
.sv-dist.items .k { flex: 0 0 84px; text-align: left; font-weight: 500; }
.sv-dist.items .bar i { background: var(--v-mint-d); }

/* 설명 · 안내 */
.sv-desc { font-size: 14px; line-height: 1.85; color: var(--v-ink-2); word-break: break-word; }
.sv-desc.adm { min-height: 88px; padding: 14px 16px; border: 1px dashed var(--v-line-2); border-radius: 10px; }
.sv-notice { border-color: #F2DFB8; background: #FFFCF5; }
:root[data-theme="dark"] .sv-notice { border-color: rgba(232,163,61,.28); background: rgba(232,163,61,.06); }
.sv-h2 { display: flex; align-items: center; }
.sv-h2.warn::before { background: #E8A33D; }
.sv-h2.warn svg { width: 16px; height: 16px; margin-right: 5px; color: #C07A16; }
.sv-h2__note { margin-left: auto; font-size: 11.5px; font-weight: 500; color: var(--v-ink-3); }

/* 인라인 편집 (관리자) */
.sv-ph { color: var(--v-ink-3); font-weight: 400; }
.sv-e { border-bottom: 1px dashed var(--v-line-2); cursor: pointer; transition: border-color .15s, background .15s; }
.sv-e:hover, .sv-e:focus-visible { border-bottom-color: var(--v-mint); background: rgba(12, 239, 211, .07); outline: none; }
.sv-e.block { display: block; border-bottom: 0; min-height: 22px; }
.sv-e.code { font-weight: 800; letter-spacing: .04em; color: var(--v-mint-d); }
.sv-e.editing { border-bottom: 0; background: none; display: block; cursor: default; }
.sv-e__box { display: block; }
.sv-e__box input, .sv-e__box textarea {
	width: 100%; box-sizing: border-box; padding: 9px 12px;
	border: 1px solid var(--v-mint); border-radius: 8px;
	background: var(--v-card); color: var(--v-ink);
	font-family: inherit; font-size: 14px; line-height: 1.7; outline: none; resize: vertical;
}
.sv-e__cate { display: flex; flex-wrap: wrap; gap: 10px; padding: 4px 0 2px; }
.sv-e__cate label { display: inline-flex; align-items: center; gap: 5px; font-size: 13px; font-weight: 500; color: var(--v-ink-2); cursor: pointer; }
.sv-e__bar { display: flex; gap: 6px; margin-top: 8px; }
.sv-e__bar button { height: 30px; padding: 0 14px; border-radius: 7px; font-family: inherit; font-size: 12.5px; font-weight: 700; cursor: pointer; }
.sv-e__bar .ok { border: 0; background: #0B6B65; color: #fff; }
.sv-e__bar .no { border: 1px solid var(--v-line-2); background: var(--v-card); color: var(--v-ink-2); }
:root[data-theme="dark"] .sv-e__bar .ok { background: var(--v-mint); color: #04201C; }

/* 후기 폼 */
.sv-rvform { padding: 18px 20px; margin-bottom: 18px; border: 1px solid var(--v-line-2); border-radius: 12px; background: var(--v-soft); }
.sv-rvform__top { display: flex; align-items: center; gap: 12px; flex-wrap: wrap; margin-bottom: 12px; }
.sv-rvform__top .lb { font-size: 13px; font-weight: 700; color: var(--v-ink-2); }
.sv-pick { display: flex; flex-direction: row-reverse; justify-content: flex-end; }
.sv-pick input { position: absolute; width: 1px; height: 1px; opacity: 0; }
.sv-pick label { padding: 0 2px; cursor: pointer; line-height: 0; }
.sv-pick svg { width: 26px; height: 26px; fill: var(--v-line-2); transition: fill .12s; }
.sv-pick input:checked ~ label svg,
.sv-pick label:hover svg,
.sv-pick label:hover ~ label svg { fill: #F5A524; }
.sv-pick input:focus-visible + label svg { outline: 2px solid var(--v-mint-d); outline-offset: 2px; }
.sv-pick__tx { font-size: 12.5px; color: var(--v-ink-3); }
.sv-detail-toggle { margin-left: auto; height: 30px; padding: 0 12px; border: 1px solid var(--v-line-2); border-radius: 7px; background: var(--v-card); color: var(--v-ink-2); font-family: inherit; font-size: 12.5px; font-weight: 700; cursor: pointer; }
.sv-detail-toggle em { font-style: normal; margin-left: 3px; }
.sv-rvform__items { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 8px 22px; margin: 0 0 12px; padding: 0; list-style: none; }
.sv-rvform__items li { display: flex; align-items: center; gap: 10px; }
.sv-rvform__items .k { flex: 0 0 82px; font-size: 12.5px; color: var(--v-ink-2); }
.sv-rvform__items .pick { display: flex; flex-direction: row-reverse; justify-content: flex-end; gap: 3px; }
.sv-rvform__items .pick input { position: absolute; width: 1px; height: 1px; opacity: 0; }
.sv-rvform__items .pick label { display: grid; place-items: center; width: 26px; height: 26px; border: 1px solid var(--v-line-2); border-radius: 6px; background: var(--v-card); font-size: 12px; font-weight: 700; color: var(--v-ink-3); cursor: pointer; }
.sv-rvform__items .pick input:checked ~ label,
.sv-rvform__items .pick label:hover { background: var(--v-mint); border-color: var(--v-mint); color: #04201C; }
.sv-rvform textarea { width: 100%; box-sizing: border-box; padding: 12px 14px; border: 1px solid var(--v-line-2); border-radius: 10px; background: var(--v-card); color: var(--v-ink); font-family: inherit; font-size: 14px; line-height: 1.7; resize: vertical; outline: none; }
.sv-rvform textarea:focus { border-color: var(--v-mint); box-shadow: 0 0 0 3px rgba(12, 239, 211, .16); }
.sv-rvform__foot { display: flex; align-items: center; justify-content: space-between; gap: 12px; flex-wrap: wrap; margin-top: 10px; }
.sv-rvform__note { margin: 0; font-size: 12px; color: var(--v-ink-3); }

@media (max-width: 1024px) { .sv-kpi ul { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (max-width: 860px)  { .sv-row2 { grid-template-columns: minmax(0, 1fr); } .sv-rvform__items { grid-template-columns: minmax(0, 1fr); } }
@media (max-width: 640px) {
	.sv-kpi ul { grid-template-columns: minmax(0, 1fr); }
	.sv-hd__top { flex-direction: column; gap: 12px; }
	.sv-hd__logo { width: 100%; height: 72px; }
	.sv-hd__meta .cnt { margin-left: 0; width: 100%; }
	.sv-hd__btns { flex-direction: column; }
	.sv-hd__btns .sv-btn { width: 100%; }
	.sv-info > div { flex-direction: column; align-items: flex-start; gap: 4px; }
	.sv-info dt { flex-basis: auto; }
}

/* KPI 아이콘 마스크 */
.sv {
	--m-db:   url("data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20viewBox%3D%220%200%2024%2024%22%3E%3Cpath%20fill%3D%22%23000%22%20d%3D%22M12%202C7%202%203%203.3%203%205v14c0%201.7%204%203%209%203s9-1.3%209-3V5c0-1.7-4-3-9-3Zm0%202c4.4%200%207%201.1%207%201s-2.6%201-7%201-7-1.1-7-1%202.6-1%207-1Zm7%2015c0%20.1-2.6%201-7%201s-7-.9-7-1v-2.6c1.8.9%204.4%201.3%207%201.3s5.2-.4%207-1.3V19Zm0-5c0%20.1-2.6%201-7%201s-7-.9-7-1v-2.6c1.8.9%204.4%201.3%207%201.3s5.2-.4%207-1.3V14Z%22%2F%3E%3C%2Fsvg%3E");
	--m-star: url("data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20viewBox%3D%220%200%2024%2024%22%3E%3Cpath%20fill%3D%22%23000%22%20d%3D%22m12%202%203.1%206.3%206.9%201-5%204.9%201.2%206.9L12%2017.8%205.8%2021l1.2-6.9-5-4.9%206.9-1z%22%2F%3E%3C%2Fsvg%3E");
	--m-cal:  url("data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20viewBox%3D%220%200%2024%2024%22%3E%3Cpath%20fill%3D%22%23000%22%20d%3D%22M7%202v2H5a2%202%200%200%200-2%202v13a2%202%200%200%200%202%202h14a2%202%200%200%200%202-2V6a2%202%200%200%200-2-2h-2V2h-2v2H9V2H7Zm12%207v10H5V9h14Z%22%2F%3E%3C%2Fsvg%3E");
	--m-chat: url("data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20viewBox%3D%220%200%2024%2024%22%3E%3Cpath%20fill%3D%22%23000%22%20d%3D%22M20%202H4a2%202%200%200%200-2%202v12a2%202%200%200%200%202%202h4l4%204%204-4h4a2%202%200%200%200%202-2V4a2%202%200%200%200-2-2Z%22%2F%3E%3C%2Fsvg%3E");
}

/* display:grid 가 hidden 속성을 이겨서 세부 항목이 항상 펼쳐져 있었다 */
.sv-rvform__items[hidden] { display: none; }

/* 한눈에 보기 : 제목 → 집계 카드 → 검색창 순서 */
.sv-kpi__h h1 { margin: 0; font-size: 22px; font-weight: 800; letter-spacing: -.035em; }
.sv-kpi__h h1 span { color: var(--v-mint-d); }
.sv-kpi__sch { margin-top: 18px; padding-top: 18px; border-top: 1px solid var(--v-line); text-align: center; }
.sv-kpi__sch .lead { margin: 0 0 14px; font-size: 14px; color: var(--v-ink-2); word-break: keep-all; }
.sv-kpi__sch .sv-sch { max-width: 640px; }
.sv-kpi__sch .sv-sch-ex { margin-top: 9px; }

/* ─────────────────────────────────────────────
   로고 · 배너 이미지 업로드 (최고관리자)
   ───────────────────────────────────────────── */
.sv-banner {
	position: relative;
	margin: -2px -2px 18px;
	border-radius: 14px;
	overflow: hidden;
	background: #F1F5F7;
	line-height: 0;
}
.sv-banner img { width: 100%; height: auto; display: block; }
.sv-banner.empty {
	display: grid;
	place-items: center;
	min-height: 118px;
	border: 1px dashed var(--v-line, #E4EBEF);
	background: #FBFDFD;
}
.sv-banner__ph {
	font-size: 13px;
	line-height: 1.6;
	color: var(--v-ink-3, #93A6B2);
	text-align: center;
	padding: 0 16px;
}
.sv-banner.drop { outline: 2px dashed #16C2AE; outline-offset: -6px; background: #E9F8F5; }
.sv-banner.busy { opacity: .55; }

.sv-up {
	position: absolute;
	right: 10px;
	bottom: 10px;
	display: flex;
	gap: 6px;
	line-height: 1;
	z-index: 2;
}
.sv-banner.empty .sv-up { position: static; margin-top: 12px; justify-content: center; }
.sv-up__btn,
.sv-up__del {
	display: inline-flex;
	align-items: center;
	height: 30px;
	padding: 0 13px;
	border: 1px solid rgba(255, 255, 255, .5);
	border-radius: 8px;
	background: rgba(17, 25, 30, .74);
	color: #fff;
	font-size: 12.5px;
	font-weight: 700;
	letter-spacing: -.02em;
	cursor: pointer;
	backdrop-filter: blur(4px);
	transition: background .15s;
}
.sv-up__btn:hover,
.sv-up__del:hover { background: rgba(17, 25, 30, .9); }
.sv-up__del { padding: 0 11px; background: rgba(163, 34, 23, .82); border-color: rgba(255, 255, 255, .4); }
.sv-banner.empty .sv-up__btn,
.sv-banner.empty .sv-up__del {
	background: #00756F;
	border-color: #00756F;
}
.sv-banner.empty .sv-up__del { background: #A32217; border-color: #A32217; }

/* 로고 위 작은 컨트롤 */
.sv-hd__logo { position: relative; }
.sv-up.logo {
	right: -6px;
	bottom: -6px;
	gap: 4px;
}
.sv-up.logo .sv-up__btn,
.sv-up.logo .sv-up__del { height: 24px; padding: 0 9px; font-size: 11px; border-radius: 6px; }
.sv-up.logo.busy { opacity: .5; }

@media (max-width: 600px) {
	.sv-banner { margin-bottom: 14px; }
	.sv-up { right: 8px; bottom: 8px; }
	.sv-up__btn, .sv-up__del { height: 28px; padding: 0 11px; font-size: 12px; }
}

[data-theme="dark"] .sv-banner { background-color: #16262A; }
[data-theme="dark"] .sv-banner.empty { background-color: #0E1A1C; border-color: #24383B; }
[data-theme="dark"] .sv-banner.empty .sv-up__btn { background-color: #0E8F85; border-color: #0E8F85; color: #04191A; }
