:root {
	--color-red-50: oklch(97.1% 0.013 17.38);
	--color-red-100: oklch(93.6% 0.032 17.717);
	--color-red-200: oklch(88.5% 0.062 18.334);
	--color-red-300: oklch(80.8% 0.114 19.571);
	--color-red-400: oklch(70.4% 0.191 22.216);
	--color-red-500: oklch(63.7% 0.237 25.331);
	--color-red-600: oklch(57.7% 0.245 27.325);
	--color-red-700: oklch(50.5% 0.213 27.518);
	--color-red-800: oklch(44.4% 0.177 26.899);
	--color-red-900: oklch(39.6% 0.141 25.723);
	--color-red-950: oklch(25.8% 0.092 26.042);
	--color-orange-50: oklch(98% 0.016 73.684);
	--color-orange-100: oklch(95.4% 0.038 75.164);
	--color-orange-200: oklch(90.1% 0.076 70.697);
	--color-orange-300: oklch(83.7% 0.128 66.29);
	--color-orange-400: oklch(75% 0.183 55.934);
	--color-orange-500: oklch(70.5% 0.213 47.604);
	--color-orange-600: oklch(64.6% 0.222 41.116);
	--color-orange-700: oklch(55.3% 0.195 38.402);
	--color-orange-800: oklch(47% 0.157 37.304);
	--color-orange-900: oklch(40.8% 0.123 38.172);
	--color-orange-950: oklch(26.6% 0.079 36.259);
	--color-amber-50: oklch(98.7% 0.022 95.277);
	--color-amber-100: oklch(96.2% 0.059 95.617);
	--color-amber-200: oklch(92.4% 0.12 95.746);
	--color-amber-300: oklch(87.9% 0.169 91.605);
	--color-amber-400: oklch(82.8% 0.189 84.429);
	--color-amber-500: oklch(76.9% 0.188 70.08);
	--color-amber-600: oklch(66.6% 0.179 58.318);
	--color-amber-700: oklch(55.5% 0.163 48.998);
	--color-amber-800: oklch(47.3% 0.137 46.201);
	--color-amber-900: oklch(41.4% 0.112 45.904);
	--color-amber-950: oklch(27.9% 0.077 45.635);
	--color-yellow-50: oklch(98.7% 0.026 102.212);
	--color-yellow-100: oklch(97.3% 0.071 103.193);
	--color-yellow-200: oklch(94.5% 0.129 101.54);
	--color-yellow-300: oklch(90.5% 0.182 98.111);
	--color-yellow-400: oklch(85.2% 0.199 91.936);
	--color-yellow-500: oklch(79.5% 0.184 86.047);
	--color-yellow-600: oklch(68.1% 0.162 75.834);
	--color-yellow-700: oklch(55.4% 0.135 66.442);
	--color-yellow-800: oklch(47.6% 0.114 61.907);
	--color-yellow-900: oklch(42.1% 0.095 57.708);
	--color-yellow-950: oklch(28.6% 0.066 53.813);
	--color-lime-50: oklch(98.6% 0.031 120.757);
	--color-lime-100: oklch(96.7% 0.067 122.328);
	--color-lime-200: oklch(93.8% 0.127 124.321);
	--color-lime-300: oklch(89.7% 0.196 126.665);
	--color-lime-400: oklch(84.1% 0.238 128.85);
	--color-lime-500: oklch(76.8% 0.233 130.85);
	--color-lime-600: oklch(64.8% 0.2 131.684);
	--color-lime-700: oklch(53.2% 0.157 131.589);
	--color-lime-800: oklch(45.3% 0.124 130.933);
	--color-lime-900: oklch(40.5% 0.101 131.063);
	--color-lime-950: oklch(27.4% 0.072 132.109);
	--color-green-50: oklch(98.2% 0.018 155.826);
	--color-green-100: oklch(96.2% 0.044 156.743);
	--color-green-200: oklch(92.5% 0.084 155.995);
	--color-green-300: oklch(87.1% 0.15 154.449);
	--color-green-400: oklch(79.2% 0.209 151.711);
	--color-green-500: oklch(72.3% 0.219 149.579);
	--color-green-600: oklch(62.7% 0.194 149.214);
	--color-green-700: oklch(52.7% 0.154 150.069);
	--color-green-800: oklch(44.8% 0.119 151.328);
	--color-green-900: oklch(39.3% 0.095 152.535);
	--color-green-950: oklch(26.6% 0.065 152.934);
	--color-emerald-50: oklch(97.9% 0.021 166.113);
	--color-emerald-100: oklch(95% 0.052 163.051);
	--color-emerald-200: oklch(90.5% 0.093 164.15);
	--color-emerald-300: oklch(84.5% 0.143 164.978);
	--color-emerald-400: oklch(76.5% 0.177 163.223);
	--color-emerald-500: oklch(69.6% 0.17 162.48);
	--color-emerald-600: oklch(59.6% 0.145 163.225);
	--color-emerald-700: oklch(50.8% 0.118 165.612);
	--color-emerald-800: oklch(43.2% 0.095 166.913);
	--color-emerald-900: oklch(37.8% 0.077 168.94);
	--color-emerald-950: oklch(26.2% 0.051 172.552);
	--color-teal-50: oklch(98.4% 0.014 180.72);
	--color-teal-100: oklch(95.3% 0.051 180.801);
	--color-teal-200: oklch(91% 0.096 180.426);
	--color-teal-300: oklch(85.5% 0.138 181.071);
	--color-teal-400: oklch(77.7% 0.152 181.912);
	--color-teal-500: oklch(70.4% 0.14 182.503);
	--color-teal-600: oklch(60% 0.118 184.704);
	--color-teal-700: oklch(51.1% 0.096 186.391);
	--color-teal-800: oklch(43.7% 0.078 188.216);
	--color-teal-900: oklch(38.6% 0.063 188.416);
	--color-teal-950: oklch(27.7% 0.046 192.524);
	--color-cyan-50: oklch(98.4% 0.019 200.873);
	--color-cyan-100: oklch(95.6% 0.045 203.388);
	--color-cyan-200: oklch(91.7% 0.08 205.041);
	--color-cyan-300: oklch(86.5% 0.127 207.078);
	--color-cyan-400: oklch(78.9% 0.154 211.53);
	--color-cyan-500: oklch(71.5% 0.143 215.221);
	--color-cyan-600: oklch(60.9% 0.126 221.723);
	--color-cyan-700: oklch(52% 0.105 223.128);
	--color-cyan-800: oklch(45% 0.085 224.283);
	--color-cyan-900: oklch(39.8% 0.07 227.392);
	--color-cyan-950: oklch(30.2% 0.056 229.695);
	--color-sky-50: oklch(97.7% 0.013 236.62);
	--color-sky-100: oklch(95.1% 0.026 236.824);
	--color-sky-200: oklch(90.1% 0.058 230.902);
	--color-sky-300: oklch(82.8% 0.111 230.318);
	--color-sky-400: oklch(74.6% 0.16 232.661);
	--color-sky-500: oklch(68.5% 0.169 237.323);
	--color-sky-600: oklch(58.8% 0.158 241.966);
	--color-sky-700: oklch(50% 0.134 242.749);
	--color-sky-800: oklch(44.3% 0.11 240.79);
	--color-sky-900: oklch(39.1% 0.09 240.876);
	--color-sky-950: oklch(29.3% 0.066 243.157);
	--color-blue-50: oklch(97% 0.014 254.604);
	--color-blue-100: oklch(93.2% 0.032 255.585);
	--color-blue-200: oklch(88.2% 0.059 254.128);
	--color-blue-300: oklch(80.9% 0.105 251.813);
	--color-blue-400: oklch(70.7% 0.165 254.624);
	--color-blue-500: oklch(62.3% 0.214 259.815);
	--color-blue-600: oklch(54.6% 0.245 262.881);
	--color-blue-700: oklch(48.8% 0.243 264.376);
	--color-blue-800: oklch(42.4% 0.199 265.638);
	--color-blue-900: oklch(37.9% 0.146 265.522);
	--color-blue-950: oklch(28.2% 0.091 267.935);
	--color-indigo-50: oklch(96.2% 0.018 272.314);
	--color-indigo-100: oklch(93% 0.034 272.788);
	--color-indigo-200: oklch(87% 0.065 274.039);
	--color-indigo-300: oklch(78.5% 0.115 274.713);
	--color-indigo-400: oklch(67.3% 0.182 276.935);
	--color-indigo-500: oklch(58.5% 0.233 277.117);
	--color-indigo-600: oklch(51.1% 0.262 276.966);
	--color-indigo-700: oklch(45.7% 0.24 277.023);
	--color-indigo-800: oklch(39.8% 0.195 277.366);
	--color-indigo-900: oklch(35.9% 0.144 278.697);
	--color-indigo-950: oklch(25.7% 0.09 281.288);
	--color-violet-50: oklch(96.9% 0.016 293.756);
	--color-violet-100: oklch(94.3% 0.029 294.588);
	--color-violet-200: oklch(89.4% 0.057 293.283);
	--color-violet-300: oklch(81.1% 0.111 293.571);
	--color-violet-400: oklch(70.2% 0.183 293.541);
	--color-violet-500: oklch(60.6% 0.25 292.717);
	--color-violet-600: oklch(54.1% 0.281 293.009);
	--color-violet-700: oklch(49.1% 0.27 292.581);
	--color-violet-800: oklch(43.2% 0.232 292.759);
	--color-violet-900: oklch(38% 0.189 293.745);
	--color-violet-950: oklch(28.3% 0.141 291.089);
	--color-purple-50: oklch(97.7% 0.014 308.299);
	--color-purple-100: oklch(94.6% 0.033 307.174);
	--color-purple-200: oklch(90.2% 0.063 306.703);
	--color-purple-300: oklch(82.7% 0.119 306.383);
	--color-purple-400: oklch(71.4% 0.203 305.504);
	--color-purple-500: oklch(62.7% 0.265 303.9);
	--color-purple-600: oklch(55.8% 0.288 302.321);
	--color-purple-700: oklch(49.6% 0.265 301.924);
	--color-purple-800: oklch(43.8% 0.218 303.724);
	--color-purple-900: oklch(38.1% 0.176 304.987);
	--color-purple-950: oklch(29.1% 0.149 302.717);
	--color-fuchsia-50: oklch(97.7% 0.017 320.058);
	--color-fuchsia-100: oklch(95.2% 0.037 318.852);
	--color-fuchsia-200: oklch(90.3% 0.076 319.62);
	--color-fuchsia-300: oklch(83.3% 0.145 321.434);
	--color-fuchsia-400: oklch(74% 0.238 322.16);
	--color-fuchsia-500: oklch(66.7% 0.295 322.15);
	--color-fuchsia-600: oklch(59.1% 0.293 322.896);
	--color-fuchsia-700: oklch(51.8% 0.253 323.949);
	--color-fuchsia-800: oklch(45.2% 0.211 324.591);
	--color-fuchsia-900: oklch(40.1% 0.17 325.612);
	--color-fuchsia-950: oklch(29.3% 0.136 325.661);
	--color-pink-50: oklch(97.1% 0.014 343.198);
	--color-pink-100: oklch(94.8% 0.028 342.258);
	--color-pink-200: oklch(89.9% 0.061 343.231);
	--color-pink-300: oklch(82.3% 0.12 346.018);
	--color-pink-400: oklch(71.8% 0.202 349.761);
	--color-pink-500: oklch(65.6% 0.241 354.308);
	--color-pink-600: oklch(59.2% 0.249 0.584);
	--color-pink-700: oklch(52.5% 0.223 3.958);
	--color-pink-800: oklch(45.9% 0.187 3.815);
	--color-pink-900: oklch(40.8% 0.153 2.432);
	--color-pink-950: oklch(28.4% 0.109 3.907);
	--color-rose-50: oklch(96.9% 0.015 12.422);
	--color-rose-100: oklch(94.1% 0.03 12.58);
	--color-rose-200: oklch(89.2% 0.058 10.001);
	--color-rose-300: oklch(81% 0.117 11.638);
	--color-rose-400: oklch(71.2% 0.194 13.428);
	--color-rose-500: oklch(64.5% 0.246 16.439);
	--color-rose-600: oklch(58.6% 0.253 17.585);
	--color-rose-700: oklch(51.4% 0.222 16.935);
	--color-rose-800: oklch(45.5% 0.188 13.697);
	--color-rose-900: oklch(41% 0.159 10.272);
	--color-rose-950: oklch(27.1% 0.105 12.094);
	--color-slate-50: oklch(98.4% 0.003 247.858);
	--color-slate-100: oklch(96.8% 0.007 247.896);
	--color-slate-200: oklch(92.9% 0.013 255.508);
	--color-slate-300: oklch(86.9% 0.022 252.894);
	--color-slate-400: oklch(70.4% 0.04 256.788);
	--color-slate-500: oklch(55.4% 0.046 257.417);
	--color-slate-600: oklch(44.6% 0.043 257.281);
	--color-slate-700: oklch(37.2% 0.044 257.287);
	--color-slate-800: oklch(27.9% 0.041 260.031);
	--color-slate-900: oklch(20.8% 0.042 265.755);
	--color-slate-950: oklch(12.9% 0.042 264.695);
	--color-gray-50: oklch(98.5% 0.002 247.839);
	--color-gray-100: oklch(96.7% 0.003 264.542);
	--color-gray-200: oklch(92.8% 0.006 264.531);
	--color-gray-300: oklch(87.2% 0.01 258.338);
	--color-gray-400: oklch(70.7% 0.022 261.325);
	--color-gray-500: oklch(55.1% 0.027 264.364);
	--color-gray-600: oklch(44.6% 0.03 256.802);
	--color-gray-700: oklch(37.3% 0.034 259.733);
	--color-gray-800: oklch(27.8% 0.033 256.848);
	--color-gray-900: oklch(21% 0.034 264.665);
	--color-gray-950: oklch(13% 0.028 261.692);
	--color-zinc-50: oklch(98.5% 0 0);
	--color-zinc-100: oklch(96.7% 0.001 286.375);
	--color-zinc-200: oklch(92% 0.004 286.32);
	--color-zinc-300: oklch(87.1% 0.006 286.286);
	--color-zinc-400: oklch(70.5% 0.015 286.067);
	--color-zinc-500: oklch(55.2% 0.016 285.938);
	--color-zinc-600: oklch(44.2% 0.017 285.786);
	--color-zinc-700: oklch(37% 0.013 285.805);
	--color-zinc-800: oklch(27.4% 0.006 286.033);
	--color-zinc-900: oklch(21% 0.006 285.885);
	--color-zinc-950: oklch(14.1% 0.005 285.823);
	--color-neutral-50: oklch(98.5% 0 0);
	--color-neutral-100: oklch(97% 0 0);
	--color-neutral-200: oklch(92.2% 0 0);
	--color-neutral-300: oklch(87% 0 0);
	--color-neutral-400: oklch(70.8% 0 0);
	--color-neutral-500: oklch(55.6% 0 0);
	--color-neutral-600: oklch(43.9% 0 0);
	--color-neutral-700: oklch(37.1% 0 0);
	--color-neutral-800: oklch(26.9% 0 0);
	--color-neutral-900: oklch(20.5% 0 0);
	--color-neutral-950: oklch(14.5% 0 0);
	--color-stone-50: oklch(98.5% 0.001 106.423);
	--color-stone-100: oklch(97% 0.001 106.424);
	--color-stone-200: oklch(92.3% 0.003 48.717);
	--color-stone-300: oklch(86.9% 0.005 56.366);
	--color-stone-400: oklch(70.9% 0.01 56.259);
	--color-stone-500: oklch(55.3% 0.013 58.071);
	--color-stone-600: oklch(44.4% 0.011 73.639);
	--color-stone-700: oklch(37.4% 0.01 67.558);
	--color-stone-800: oklch(26.8% 0.007 34.298);
	--color-stone-900: oklch(21.6% 0.006 56.043);
	--color-stone-950: oklch(14.7% 0.004 49.25);
	--color-mauve-50: oklch(98.5% 0 0);
	--color-mauve-100: oklch(96% 0.003 325.6);
	--color-mauve-200: oklch(92.2% 0.005 325.62);
	--color-mauve-300: oklch(86.5% 0.012 325.68);
	--color-mauve-400: oklch(71.1% 0.019 323.02);
	--color-mauve-500: oklch(54.2% 0.034 322.5);
	--color-mauve-600: oklch(43.5% 0.029 321.78);
	--color-mauve-700: oklch(36.4% 0.029 323.89);
	--color-mauve-800: oklch(26.3% 0.024 320.12);
	--color-mauve-900: oklch(21.2% 0.019 322.12);
	--color-mauve-950: oklch(14.5% 0.008 326);
	--color-olive-50: oklch(98.8% 0.003 106.5);
	--color-olive-100: oklch(96.6% 0.005 106.5);
	--color-olive-200: oklch(93% 0.007 106.5);
	--color-olive-300: oklch(88% 0.011 106.6);
	--color-olive-400: oklch(73.7% 0.021 106.9);
	--color-olive-500: oklch(58% 0.031 107.3);
	--color-olive-600: oklch(46.6% 0.025 107.3);
	--color-olive-700: oklch(39.4% 0.023 107.4);
	--color-olive-800: oklch(28.6% 0.016 107.4);
	--color-olive-900: oklch(22.8% 0.013 107.4);
	--color-olive-950: oklch(15.3% 0.006 107.1);
	--color-mist-50: oklch(98.7% 0.002 197.1);
	--color-mist-100: oklch(96.3% 0.002 197.1);
	--color-mist-200: oklch(92.5% 0.005 214.3);
	--color-mist-300: oklch(87.2% 0.007 219.6);
	--color-mist-400: oklch(72.3% 0.014 214.4);
	--color-mist-500: oklch(56% 0.021 213.5);
	--color-mist-600: oklch(45% 0.017 213.2);
	--color-mist-700: oklch(37.8% 0.015 216);
	--color-mist-800: oklch(27.5% 0.011 216.9);
	--color-mist-900: oklch(21.8% 0.008 223.9);
	--color-mist-950: oklch(14.8% 0.004 228.8);
	--color-taupe-50: oklch(98.6% 0.002 67.8);
	--color-taupe-100: oklch(96% 0.002 17.2);
	--color-taupe-200: oklch(92.2% 0.005 34.3);
	--color-taupe-300: oklch(86.8% 0.007 39.5);
	--color-taupe-400: oklch(71.4% 0.014 41.2);
	--color-taupe-500: oklch(54.7% 0.021 43.1);
	--color-taupe-600: oklch(43.8% 0.017 39.3);
	--color-taupe-700: oklch(36.7% 0.016 35.7);
	--color-taupe-800: oklch(26.8% 0.011 36.5);
	--color-taupe-900: oklch(21.4% 0.009 43.1);
	--color-taupe-950: oklch(14.7% 0.004 49.3);
	--color-black: #000;
	--color-white: #fff;
}

.tui-grid-cell.text-rose {
	color: var(--color-rose-500) !important;
	font-weight: bold;
}

.tui-grid-cell.text-blue {
	color: var(--color-blue-800) !important;
	font-weight: bold;
}

.mainMenu .upsideDown {
	transform: rotate(-180deg);
	user-select: none;
}

.bg-success {
	background-color: var(--color-green-400);
}

.bg-green-600 {
	background-color: var(--color-green-600);
}

.bg-rose-400 {
	background-color: var(--color-rose-400);
}

.bg-rose-500 {
	background-color: var(--color-rose-500);
}

.bg-rose-50 {
	background-color: var(--color-rose-50);
}

.bg-rose-600 {
	background-color: var(--color-rose-600);
}

.hover\:bg-rose-600 {
	&:hover {
		@media (hover: hover) {
			background-color: var(--color-rose-600);
		}
	}
}

.hover\:bg-amber-600 {
	&:hover {
		@media (hover: hover) {
			background-color: var(--color-amber-600);
		}
	}
}

.hover\:bg-blue-600 {
	&:hover {
		@media (hover: hover) {
			background-color: var(--color-blue-600);
		}
	}
}

.hover\:bg-blue-800 {
	&:hover {
		@media (hover: hover) {
			background-color: var(--color-blue-800);
		}
	}
}

.hover\:bg-green-800 {
	&:hover {
		@media (hover: hover) {
			background-color: var(--color-green-800);
		}
	}
}

.hover\:bg-slate-800 {
	&:hover {
		@media (hover: hover) {
			background-color: var(--color-slate-800);
		}
	}
}

.hover\:bg-emerald-800 {
	&:hover {
		@media (hover: hover) {
			background-color: var(--color-emerald-800);
		}
	}
}

.asideShow {
	transform: translateX(100%);
}

[role="button"],
button {
	cursor: pointer;
}

.selectHeight {
	height: 34px;
}

/* 스피너를 감싸는 오버레이 레이어 */
#loading-overlay {
	position: fixed;
	top: 0;
	left: 0;
	width: 100%;
	height: 100%;
	background-color: rgba(0, 0, 0, 0.5);
	/* 반투명 검정 */
	display: none;
	/* 기본은 숨김 */
	justify-content: center;
	align-items: center;
	z-index: 9999;
	/* 최상단에 배치 */
}

/* 실제 스피너 모양 */
.spinner {
	width: 50px;
	height: 50px;
	border: 5px solid #f3f3f3;
	border-top: 5px solid #3498db;
	/* 로딩 색상 */
	border-radius: 50%;
	animation: spin 1s linear infinite;
}

@keyframes spin {
	0% {
		transform: rotate(0deg);
	}

	100% {
		transform: rotate(360deg);
	}
}

.sm\:items-end {
	@media (width >=40rem) {
		align-items: end;
	}
}

/* 모달 배경 (뒷부분을 어둡게) */
.modal {
	display: none;
	/* 기본적으로 숨김 */
	position: fixed;
	z-index: 1000;
	left: 0;
	top: 0;
	width: 100%;
	height: 100%;
	background-color: rgba(0, 0, 0, 0.5);
}

/* 모달 박스 */
.modal-content {
	background-color: #fff;
	margin: 15% auto;
	padding: 20px;
	border-radius: 8px;
	width: 350px;
	box-shadow: 0 4px 8px rgba(0, 0, 0, 0.2);
}

.modal-header {
	display: flex;
	justify-content: space-between;
	align-items: center;
	border-bottom: 1px solid #ddd;
	padding-bottom: 10px;
}

.modal-body {
	padding: 20px 0;
}

.modal-body input {
	width: 100%;
	padding: 10px;
	margin: 10px 0;
	box-sizing: border-box;
}

.modal-body select {
	width: 100%;
	padding: 10px;
	margin: 10px 0;
	box-sizing: border-box;
}

.modal-footer {
	text-align: right;
	border-top: 1px solid #ddd;
	padding-top: 10px;
	display: flex;
	justify-content: flex-end;
}

/* 버튼 스타일 */
.btn-primary {
	margin-right: 2px;
}

.btn-secondary {
	background: #6c757d;
	color: white;
	border: none;
	padding: 10px 20px;
	cursor: pointer;
	border-radius: 4px;
	margin-right: 5px;
}

.close-btn {
	margin-left: 2px;
}

.tui-grid-summary-area .tui-grid-cell {
	user-select: text !important;
	-webkit-user-select: text !important;
	-moz-user-select: text !important;
}

.toast-message {
	min-width: 250px;
	padding: 15px 20px;
	background: #333;
	color: #fff;
	border-radius: 8px;
	box-shadow: 0 4px 12px rgba(0, 0, 0, 0.15);
	font-size: 14px;
	animation: slideIn 0.3s ease-out;
	display: flex;
	justify-content: space-between;
	align-items: center;
}

.toast-success {
	background-color: #28a745;
}

.toast-primary {
	background-color: #2563eb;
}

.toast-error {
	background-color: #dc3545;
}

@keyframes slideIn {
	from {
		transform: translateX(100%);
		opacity: 0;
	}

	to {
		transform: translateX(0);
		opacity: 1;
	}
}

.fade-out {
	opacity: 0;
	transition: opacity 0.5s ease;
}

.md\:grid-cols-5 {
	@media (width >=48rem) {
		grid-template-columns: repeat(5, minmax(0, 1fr));
	}
}

.md\:col-span-2 {
	@media (width >=48rem) {
		grid-column: span 2 / span 2;
	}
}

.md\:col-span-3 {
	@media (width >=48rem) {
		grid-column: span 3 / span 3;
	}
}

.tui-grid-cell.bg-red {
  background-color: #ffcccc !important;
  color: #ff0000;
}

.tui-grid-cell.bg-blue {
  background-color: #e6f7ff !important;
}
/* ============================================================
   TFM 검색폼 표준 — pg-tfm style.css 동등.
   상세 검색은 체크박스 하나로 여닫는다(JS 없음).
   ============================================================ */
.custom-table-scroll::-webkit-scrollbar        { height: 4px; }
.custom-table-scroll::-webkit-scrollbar-thumb  { background: #e2e8f0; border-radius: 10px; }

#advanced-search-toggle:checked ~ .advanced-filters-panel { display: grid; }
#advanced-search-toggle:checked ~ .search-main-row .toggle-btn-icon { transform: rotate(180deg); }
#advanced-search-toggle:checked ~ .search-main-row .toggle-btn {
    background: #eff6ff;
    border-color: #2563eb;
    color: #2563eb;
}

/* output.css 서브셋에 없는 것들. 템플릿이 쓰므로 여기서 채운다.
   Tailwind 브레이크포인트: sm=40rem  md=48rem  lg=64rem */
.flex-wrap { flex-wrap: wrap; }

@media (width >= 40rem) {
    .sm\:w-16 { width: calc(var(--spacing) * 16); }
    .sm\:w-36 { width: calc(var(--spacing) * 36); }
}
@media (width >= 48rem) {
    .md\:col-span-2 { grid-column: span 2 / span 2; }
}
@media (width >= 64rem) {
    .lg\:items-end   { align-items: flex-end; }
    .lg\:justify-end { justify-content: flex-end; }
    .lg\:w-auto      { width: auto; }
    .lg\:grid-cols-2 { grid-template-columns: repeat(2, minmax(0, 1fr)); }
    .lg\:grid-cols-3 { grid-template-columns: repeat(3, minmax(0, 1fr)); }
    .lg\:col-span-2  { grid-column: span 2 / span 2; }
}

/* Tailwind 기본에는 xs 브레이크포인트가 없다. main 셸이 쓰고 있어 정의한다 —
   없으면 hidden 만 걸려 화살표가 아예 안 보인다. */
@media (width >= 30rem) {
    .xs\:inline { display: inline; }
}

/* 공지사항 본문 — 등록자가 넣은 HTML 을 그대로 그린다.
   안내 이미지가 650px 을 넘는 경우가 있어 모달 폭에 맞춰 줄인다. */
.notice-body img { max-width: 100%; height: auto; }
.notice-body table { max-width: 100%; }
.notice-body p { margin: 0 0 0.5rem; }

/* ══════════════════════════════════════════════════════════════
   등록·수정 폼의 밀도 — <form class="form-card">

   이사님 시안(templates/insertExPage.html)은 칸이 넉넉하고 줄 사이가 넓다.
   input-compact 자체는 padding-block 이 4px 뿐이라 칸이 낮게 나온다.
   시안의 여유를 여기서 한 번에 준다 — 화면마다 클래스를 늘어놓지 않는다.

   밀도를 바꾸고 싶으면 이 블록의 숫자만 고친다. 전 등록·수정 화면이 따라온다.
   ══════════════════════════════════════════════════════════════ */

/* 칸 높이. 시안의 셀렉트가 34px 이고, 입력칸도 그와 나란해야 줄이 고르다. */
.form-card .input-compact {
	height: 38px;
	padding-block: 0;          /* 높이로 잡으므로 위아래 패딩은 비운다 */
	font-size: 12px;           /* 11px 은 칸이 커지면 되레 작아 보인다 */
}
.form-card select.input-compact { height: 38px; }

/* 라벨과 칸 사이. label-compact 의 2px 는 시안보다 붙어 있다. */
.form-card .label-compact { margin-bottom: 8px; }

/* 줄 사이·열 사이. 템플릿의 gap-3(12px)이 시안보다 촘촘하다.
   시안(localhost:8280/insertExPage)을 재 보면 열 사이 24px, 줄 사이 22px 쯤이다. */
.form-card .grid {
	column-gap: 1.5rem;
	row-gap: 1.35rem;
}

/* 구획 제목 — 위아래로 숨을 준다. 붙어 있으면 묶음이 구분되지 않는다. */
.form-card > p,
.form-card > div > p.border-b { margin-bottom: 0.9rem; }

/* ── 묶음과 묶음 사이 ──────────────────────────────────────────
   위의 row-gap 은 한 격자 '안' 의 줄 사이만 벌린다. 격자가 둘 이어지면
   그 경계에는 아무 여백이 없어 두 줄이 딱 붙는다
   (가맹점 등록의 소속 3칸 ↔ 아이디 줄이 그랬다).

   격자 뒤에 무엇이 오든 같은 만큼 띄운다. 마지막 격자에도 붙지만
   그 아래는 바닥줄(border-t)이라 어색하지 않다. */
.form-card > .grid { margin-bottom: 1.35rem; }

/* 구획 제목이 격자 바로 뒤에 오면 한 번 더 띄운다. 새 묶음이 시작된다는 표시다. */
.form-card > .grid + p,
.form-card > .grid + div { margin-top: 0.4rem; }

/* 칸 안에 버튼이 같이 선 자리(주소 찾기·중복확인)도 높이를 맞춘다. */
.form-card .h-\[30px\] { height: 38px; }

/* ── 한 줄에 여럿이 서는 칸 ────────────────────────────────────
   사업자(주민)번호 = 셀렉트 + 입력칸,  우편번호 = 버튼 + 입력칸,
   아이디 = 입력칸 + 중복확인 버튼 …

   input-compact 는 width:100% 다. flex 한 줄에 그대로 두면 앞의 것이 줄을
   통째로 먹고 뒤에 오는 칸이 실오라기만 하게 남는다(실제로 그렇게 보였다).

   그래서 이 자리에서는
     입력칸  남는 자리를 채운다        flex:1, width:auto
     셀렉트  제 내용만큼만 차지한다    flex:0 0 auto, width:auto
   min-width:0 이 없으면 flex 항목이 제 내용보다 작아지지 못해 여전히 넘친다. */
.form-card .flex > .input-compact {
	width: auto;
	flex: 1 1 0;
	min-width: 0;
}
.form-card .flex > select.input-compact {
	flex: 0 0 auto;
	width: auto;
}

/* 공지 본문 에디터(Summernote) — 우리 모달 안에서 쓴다.
   등록 모달이 z-index:50 이라, 에디터가 여는 창(그림 삽입 등)을 그 위로 올린다.
   dialogsInBody:true 로 창을 body 에 빼 두었지만, 층수까지 맞춰야 확실히 눌린다. */
.note-modal          { z-index: 1100; }
.note-modal-backdrop { z-index: 1090; }
/* 에디터가 만든 그림은 모달 폭을 넘지 않게. 본문 보기(notice-body)와 같은 규칙이다. */
.note-editable img   { max-width: 100%; height: auto; }

/* ══════════════════════════════════════════════════════════════
   로그인 화면

   로고에서 색을 가져온다. 로고는 밝고 따뜻한 노랑에 흰 W 가 얹힌 모양이다.
   여기에 남색을 붙이면 서로 민다 — 차가운 색과 따뜻한 색이 같은 무게로 싸운다.
   그래서 화면 전체를 로고의 온도로 맞춘다.

     넓은 면(배경) = 아주 옅은 크림. 넓을수록 조용해야 한다.
     브랜드 면     = 따뜻한 짙은 갈색. 노란 로고가 여기서 가장 잘 산다.
     강조          = 로고의 금색. 버튼 하나와 눈썹글씨 두 곳뿐.

   output.css 는 사전 컴파일 서브셋이라 그라디언트도 임의값도 없다.
   클래스로 쓰면 조용히 안 먹으므로 이 화면의 모양은 여기서 직접 그린다.

   배경은 position:fixed 로 깐다. 레이아웃(layoutForLogin)의 body 를 건드리면
   같은 레이아웃을 쓰는 OTP 화면까지 같이 바뀐다.
   ══════════════════════════════════════════════════════════════ */

.auth-bg {
    position: fixed;
    inset: 0;
    z-index: -1;
    /* 왼쪽이 어둡고 오른쪽으로 갈수록 밝아진다. 95deg 는 거의 가로지만
       살짝 기울여 두면 면이 평평해 보이지 않는다. */
    background: linear-gradient(95deg, #201710 0%, #2f2317 38%, #43331f 72%, #6b5943 100%);
}

.auth-card {
    display: grid;
    grid-template-columns: 1.08fr 1fr;
    width: 100%;
    max-width: 1020px;
    background: #fff;
    border-radius: 20px;
    overflow: hidden;
    /* 밝은 바탕이라 그림자는 옅고 넓게. 진하면 카드가 들려 보인다.
       색은 회색이 아니라 따뜻한 갈색 — 크림 위에서 회색 그림자는 탁하다. */
    box-shadow: 0 32px 70px -20px rgba(8, 5, 2, .58), 0 6px 16px -8px rgba(8, 5, 2, .34);
}

/* ── 왼쪽 : 브랜드 ── */
.auth-brand {
    position: relative;
    overflow: hidden;
    display: flex;
    flex-direction: column;
    /* 아래쪽 글 묶음이 바닥에 붙는 구조라, 높이를 주지 않으면 가운데가 빈다. */
    min-height: 440px;
    padding: 44px 46px 46px;
    /* 크림. 오른쪽 흰 면과 밝기가 가까우므로 경계선으로 갈라 준다. */
    color: #2b2015;
    background: linear-gradient(150deg, #fdfaf2 0%, #f7f0e4 55%, #f0e6d5 100%);
    border-right: 1px solid #eadfcb;
}
/* 로고의 후광을 옮겨 온 것이다. 빈 가운데를 채우면서 금색 기운을 남긴다. */
.auth-brand::after {
    content: "";
    position: absolute;
    right: -130px;
    bottom: -150px;
    width: 420px;
    height: 420px;
    border-radius: 50%;
    /* 크림 위라 옅으면 안 보인다. 짙은 갈색 판에 쓰던 값보다 진하게. */
    background: radial-gradient(circle, rgba(240, 178, 30, .30) 0%, rgba(240, 178, 30, .07) 60%, rgba(240, 178, 30, 0) 72%);
}
.auth-brand > * { position: relative; z-index: 1; }

.auth-logo {
    display: flex;
    align-items: center;
    gap: 11px;
}
/* 로고는 512x512 정사각에 노란 배경이 채워진 불투명 이미지다.
   흰 배경이나 여백을 주면 노란 사각형 둘레에 흰 테가 생긴다. 그대로 놓는다. */
.auth-logo img {
    width: 42px;
    height: 42px;
    border-radius: 11px;
    object-fit: cover;
    display: block;
    /* 크림 위에 노란 사각형이라 밝기가 가깝다. 테와 그림자로 띄운다. */
    box-shadow: 0 0 0 1px rgba(180, 130, 20, .22), 0 6px 16px -6px rgba(150, 105, 15, .38);
}
.auth-logo b {
    font-size: 19px;
    font-weight: 700;
    letter-spacing: -.02em;
    color: #2b2015;
}

.auth-brand-body { margin-top: auto; }

.auth-eyebrow {
    font-size: 10px;
    font-weight: 700;
    letter-spacing: .18em;
    text-transform: uppercase;
    /* 로고의 금색. 짙은 갈색 위에서 밝게 읽힌다. */
    color: #a8760a;
    margin: 0 0 12px;
}
.auth-brand h2 {
    font-size: 33px;
    font-weight: 700;
    line-height: 1.26;
    letter-spacing: -.03em;
    margin: 0 0 16px;
}
.auth-brand p {
    font-size: 12.5px;
    line-height: 1.75;
    /* 크림 위이므로 흰색이 아니라 옅은 갈색이라야 읽힌다. */
    color: #7d7062;
    margin: 0;
    max-width: 30ch;
}

/* ── 오른쪽 : 입력 ── */
.auth-form {
    padding: 52px 46px 40px;
    display: flex;
    flex-direction: column;
}
/* 흰 바탕이라 로고의 금색을 그대로 쓰면 안 읽힌다. 짙게 내린다. */
.auth-form .auth-eyebrow { color: #a8760a; margin-bottom: 10px; }
.auth-form h1 {
    font-size: 25px;
    font-weight: 700;
    letter-spacing: -.03em;
    /* 검정 대신 따뜻한 먹색. 화면 전체 온도와 맞춘다. */
    color: #241c12;
    margin: 0 0 8px;
}
.auth-form .auth-lede {
    font-size: 12px;
    color: #7a6e5e;
    margin: 0 0 28px;
}

.auth-field { margin-bottom: 16px; }
.auth-field label {
    display: block;
    font-size: 12px;
    font-weight: 700;
    color: #3a3125;
    margin-bottom: 7px;
}
.auth-field input {
    width: 100%;
    height: 42px;
    padding: 0 13px;
    font-size: 13px;
    color: #241c12;
    background: #fff;
    border: 1px solid #ded5c6;
    border-radius: 8px;
    outline: none;
    transition: border-color .15s, box-shadow .15s;
}
.auth-field input::placeholder { color: #b3a894; }
.auth-field input:focus {
    border-color: #d99f10;
    box-shadow: 0 0 0 3px rgba(232, 163, 23, .16);
}

/* 화면에서 가장 진한 색은 이 버튼 하나다. 배경이 조용하니 여기로 눈이 간다.
   금색 위에 흰 글씨는 대비가 안 나온다. 짙은 갈색 글씨라야 읽힌다. */
.auth-submit {
    width: 100%;
    height: 46px;
    margin-top: 10px;
    font-size: 13.5px;
    font-weight: 700;
    color: #2c2004;
    background: linear-gradient(180deg, #f6c22e 0%, #e5a20d 100%);
    border: 0;
    border-radius: 9px;
    cursor: pointer;
    box-shadow: 0 8px 20px -8px rgba(229, 162, 13, .6);
    transition: filter .15s, transform .05s;
}
.auth-submit:hover { filter: brightness(1.06); }
.auth-submit:active { transform: translateY(1px); }
.auth-submit:focus-visible { outline: 3px solid rgba(216, 158, 16, .5); outline-offset: 2px; }

/* 차단 안내. 로그인을 못 하는 이유를 설명하는 자리라 눈에 띄어야 한다. */
.auth-alert {
    margin-top: 18px;
    padding: 11px 13px;
    font-size: 11.5px;
    line-height: 1.65;
    color: #9d2721;
    background: #fdf0ef;
    border: 1px solid #f4cfcc;
    border-radius: 8px;
}
.auth-alert b { font-weight: 700; }

.auth-foot {
    margin-top: auto;
    padding-top: 30px;
    text-align: center;
    font-size: 11.5px;
    color: #a1957f;
}

/* ── 좁은 화면 ──
   브랜드 면을 위로 접고 높이를 줄인다. 없애지는 않는다 —
   어느 시스템에 로그인하는지가 사라지면 안 된다. */
@media (max-width: 860px) {
    .auth-card { grid-template-columns: 1fr; max-width: 420px; }
    .auth-brand { min-height: 0; padding: 26px 28px; }
    .auth-brand::after { display: none; }
    .auth-brand h2 { font-size: 21px; margin-bottom: 8px; }
    .auth-brand p { display: none; }
    .auth-brand-body { margin-top: 22px; }
    .auth-form { padding: 32px 28px 28px; }
}

/* ══════════════════════════════════════════════════════════════
   앱 테마 — 로그인 화면과 같은 결로

   로그인은 어두운 갈색 배경 → 크림 판 → 흰 판, 세 단으로 밝아진다.
   앱도 같은 세 단으로 둔다.
     사이드바 = 어둠, 상단바 = 크림, 본문 = 거의 흰색

   output.css 는 사전 컴파일 서브셋이라 색이 파일 안에 박혀 있다(#1e293b 등).
   설정 파일(tailwind-config.js)은 앱 화면에서 읽지 않으므로 거기를 고쳐도 소용없다.
   그래서 여기서 덮어쓴다 — svc.css 가 output.css 뒤에 실린다.
   ══════════════════════════════════════════════════════════════ */

/* 사이드바 — 로그인 배경의 어두운 쪽과 같은 색.
   ★ 클래스만 덮으면 안 된다. output.css 에는 변수(--color-sidebar-*)가 TFM 의 남색으로
     박혀 있고, hover:bg-sidebar-hover 같은 변형 클래스는 그 변수를 읽는다.
     .bg-sidebar-hover 만 덮으면 변형 쪽은 여전히 남색이라, Dashboard 에 마우스를
     올리면 갈색 사이드바에 남색 덩어리가 떴다. 변수를 함께 갈아 끼운다. */
:root {
	--color-sidebar-bg:    #604e36;
	--color-sidebar-hover: #735f45;
}
.bg-sidebar-bg    { background-color: #604e36 !important; }
.bg-sidebar-hover { background-color: #735f45 !important; }
/* 마우스를 올렸을 때 글자가 흰색으로 가면 금색 강조와 어긋난다. 금색으로 맞춘다. */
.aside a.hover\:text-white:hover { color: #f0c24a !important; }

/* 상단바 — 로그인의 크림 판.
   bg-header-color 는 어디에도 정의된 적이 없어 여태 배경이 없었다. 여기서 준다. */
.bg-header-color  { background-color: #f7f1e6 !important; }

/* 본문 — 셋 중 가장 밝다. 차가운 #f8fafc 를 따뜻한 쪽으로 옮긴다. */
.bg-content-bg    { background-color: #faf6ef !important; }

/* 사이드바 안의 강조색은 금색이다. 어두운 갈색 위에서 파랑은 겉돈다.
   본문 쪽 파랑(링크·버튼)은 건드리지 않는다 — 흰 바탕에서는 파랑이 읽기 좋다. */
.aside .text-primary-blue { color: #e8b52a !important; }

/* ── 메뉴를 고르거나 올렸을 때 ──────────────────────────────────
   output.css 에는 이 자리가 남색(slate-700, rgb(51 65 85))으로 박혀 있다.
   TFM 은 사이드바가 남색이라 그 위에서 어울렸는데, SVC2 는 갈색으로 바꾸면서
   글자색(text-primary-blue → 금색)만 덮고 배경은 그대로 두었다.
   그래서 갈색 사이드바에 남색 덩어리가 떠 보였다.

   FR(pg-fr) 이 푸는 방식을 그대로 가져온다 —
     배경은 사이드바 색의 밝은 톤(--color-sidebar-hover)
     글자는 강조색(FR 은 노랑, 여기는 금색)
   사이드바와 같은 계열이라 덩어리로 튀지 않고, 밝기 차이로 어디를 보고 있는지 알린다. */
.selectedMainMenu,
.notSelectedMainMenu:hover {
	background-color: #735f45 !important;   /* .bg-sidebar-hover 와 같은 값 */
	color: #f0c24a !important;
}
/* 고른 메뉴는 올려놓기만 한 것보다 한 단계 더 밝다. 둘이 같으면 구분이 안 된다. */
.selectedMainMenu {
	background-color: #806a4d !important;
}
/* 접힘 표시(∨)와 폴더 아이콘도 글자를 따라간다. 혼자 흰색이면 겉돈다. */
.selectedMainMenu .material-symbols-outlined,
.notSelectedMainMenu:hover .material-symbols-outlined {
	color: #f0c24a !important;
}

/* 하위 메뉴 — 고른 것은 금색, 올려놓은 것도 금색. 파랑을 쓰지 않는다. */
.selectedSubMenu,
.notSelectedSubMenu:hover {
	color: #f0c24a !important;
}
/* 하위 메뉴를 잇는 세로선. slate-800 은 갈색 위에서 검게 죽는다. */
.aside .border-slate-800 { border-color: rgba(255, 240, 214, .18) !important; }
/* 'MAIN MENU' 소제목. slate-500 은 갈색에 묻혀 거의 안 보인다. */
.aside .text-slate-500 { color: rgba(255, 240, 214, .45) !important; }

/* 사이드바 로고. 로그인 화면의 것과 같은 표식이다.
   로고는 노란 배경이 채워진 불투명 이미지라 여백을 주면 둘레에 흰 테가 생긴다. */
/* 로고 안에 W · 카드 아이콘 · 글자까지 들어 있다. 작으면 전부 뭉개진다.
   사이드바 머리를 로고가 이끄는 자리로 두고 시원하게 키운다. */
.sidebar-logo {
    width: 52px;
    height: 52px;
    border-radius: 13px;
    object-fit: cover;
    display: block;
    flex-shrink: 0;
    position: relative;
    z-index: 1;
    /* 번지는 빛은 걷어낸다. 로고가 스스로 빛나면 은은한 결이 깨진다. */
    box-shadow: 0 0 0 1px rgba(247, 197, 49, .28);
}

/* 로고 뒤에서 번지는 빛. 어두운 사이드바에 로고만 덩그러니 놓이지 않게 한다.
   ::after 를 로고 자신에게 걸 수 없어(img 는 가짜 요소를 못 가진다)
   감싸는 묶음에 건다. 로고는 z-index 로 그 위에 올린다. */
.sidebar-brand {
    position: relative;
    /* 로고가 52px 이라 gap-2(8px)로는 글자가 붙어 보인다.
       svc.css 가 output.css 뒤에 실리므로 같은 한 겹 선택자로 덮인다. */
    gap: 0.85rem;
}
.sidebar-brand::before {
    content: "";
    position: absolute;
    /* 로고(52px) 중심에 맞춘다. 원 반지름 84 - 로고 반지름 26 = 58 */
    left: -58px;
    top: 50%;
    transform: translateY(-50%);
    width: 168px;
    height: 168px;
    border-radius: 50%;
    pointer-events: none;
    /* 빛무리를 그리는 것이 아니라 이 언저리를 살짝 띄우는 정도다.
       정지점은 촘촘히 — 서너 개만 두면 직선으로 이어져 원판이 된다.

       세기는 바탕 밝기에 매인다. 예전 메뉴바(#241b12)에서 .12 로 맞춰 뒀는데
       지금은 한 단 밝은 갈색(#604e36)이라 그대로 두면 묻힌다. 곡선 모양은 그대로 두고
       전체를 1.3 배만 올렸다. 보기에 세면 이 숫자들만 되돌리면 된다. */
    background: radial-gradient(circle,
        rgba(247, 197, 49, .155) 0%,
        rgba(247, 197, 49, .123) 14%,
        rgba(247, 197, 49, .091) 28%,
        rgba(247, 197, 49, .058) 44%,
        rgba(247, 197, 49, .032) 60%,
        rgba(247, 197, 49, .016) 76%,
        rgba(247, 197, 49, .005) 90%,
        rgba(247, 197, 49, 0) 100%);
}

/* 로고가 커졌으니 옆의 이름도 같이 올린다. 안 그러면 로고만 크고 글자는 남는다. */
.aside h1 {
    font-size: 15px !important;
    letter-spacing: .02em;
}

/* 상단바 글자 — 크림 바탕이라 밝은 회색은 사라진다. 따뜻한 먹색으로 못박는다.
   markup 의 text-slate-50 은 거의 흰색이라 그대로 두면 안 보인다. */
#mainMenuText { color: #8d8070 !important; }
#subMenuText  { color: #2b2015 !important; }
/* 상단바 오른쪽(알림·이름·로그아웃). 크림 바탕이라 밝은 회색은 흐리다.
   header 안의 것만 내린다 — 사이드바의 같은 클래스는 어두운 바탕이라 그대로 두어야 한다. */
header .text-slate-400 { color: #8d8070 !important; }
header .text-slate-300 { color: #4a4034 !important; }
header .text-slate-50  { color: #2b2015 !important; }

/* 메뉴바가 예전보다 밝은 갈색(#604e36)이라 흐린 회색 글씨는 대비가 모자란다.
   섹션 라벨과 보조 글씨만 따뜻한 쪽으로 올린다. 본문 쪽 같은 클래스는 건드리지 않는다. */
.aside .text-slate-500 { color: #b5a48b !important; }
.aside .text-slate-400 { color: #c6b69e !important; }
.aside .border-slate-800     { border-color: rgba(255, 240, 214, .13) !important; }
.aside .border-slate-700\/50 { border-color: rgba(255, 240, 214, .13) !important; }
.aside .sidebar-scroll::-webkit-scrollbar-thumb { background: rgba(255, 240, 214, .16); }


/*
 * 그리드 — 눈에 띄어야 하는 줄.
 *
 * SVC 는 목록에서 어떤 조건일 때 <tr style="color:red"> 로 줄 전체를 빨갛게 한다.
 * (대행사 조회 = 지불 상태가 '미등록' 이거나 '중지' 인 줄)
 *
 * TUI Grid 는 행 데이터의 _attributes.className.row 로 줄에 클래스를 건다.
 * 색을 output.css 의 클래스로 주려 하면 안 된다 — 사전 컴파일된 서브셋이라
 * 거기 없는 조합은 조용히 무시된다.
 */
.tui-grid-row-alert .tui-grid-cell,
.tui-grid-cell.row-alert,
tr.row-alert .tui-grid-cell-content,
.row-alert .tui-grid-cell-content {
    color: #dc2626;
}

/* ══════════════════════════════════════════════════════════════
   상세 모달의 값 칸 — <div class="detail-card">

   등록폼(form-card)과 같은 리듬으로 읽히게 한다. 라벨은 위, 값은 아래.
   라벨을 오른쪽에 붙이고 값을 옆에 두면 줄이 촘촘해져서 어디까지가 한 칸인지
   흐려진다(2026-09-08 지적).

   읽기 전용이라 입력칸 테두리 대신 밑줄만 둔다 — 빈 상자가 스무 개 늘어서면
   읽을 것이 어디인지 되레 안 보인다.

   밀도는 form-card 규칙을 그대로 물려받는다. 바꾸고 싶으면 그 블록을 고친다.
   ══════════════════════════════════════════════════════════════ */

.detail-card .detail-value {
	min-height: 26px;
	padding: 3px 2px;
	font-size: 12px;
	color: #1e293b;
	border-bottom: 1px solid #f1f5f9;
	word-break: break-all;
}

/* 값이 비어도 줄이 무너지지 않게. 안 그러면 옆 칸과 높이가 어긋난다. */
.detail-card .detail-value:empty::after {
	content: '\00a0';
}

/* 등록폼과 같은 줄 사이·열 사이. */
.detail-card .grid {
	column-gap: 1.5rem;
	row-gap: 1.1rem;
}

/* ══════════════════════════════════════════════════════════════
   등록 모달의 바닥 — <div class="form-modal-body">

   폼 카드의 p-4 만으로는 저장 단추와 모달 끝이 맞닿아 보인다
   (2026-09-08 지적). 스크롤이 생기는 자리라 더 그렇게 느껴진다.
   몸통 아래쪽에 숨을 한 번 더 준다.
   ══════════════════════════════════════════════════════════════ */

.form-modal-body { padding-bottom: 1.25rem; }

/* ══════════════════════════════════════════════════════════════
   반응형 — 좁은 화면에서 모달과 폼이 깨지지 않게

   ★ 왜 필요했나 (2026-09-09 이사님 지적, 스크린샷)
     등록 폼의 격자는 `grid-cols-1 md:grid-cols-2` 다. 768px 미만에서는
     한 줄에 한 칸이어야 한다.

     그런데 몇몇 칸(상세주소·도메인 …)에 `style="grid-column:span 2"` 가
     박혀 있었다. 격자가 한 칸짜리인데 두 칸을 차지하라고 하면 브라우저는
     <b>두 번째 열을 새로 만든다.</b> 그 열은 auto 라 제 내용만큼 가져가고,
     원래 열(1fr)은 남는 부스러기만 받는다 —
     그래서 라벨이 '사업 자 이 름' 처럼 한 글자씩 쪼개져 내렸다.

     인라인 style 은 미디어쿼리로 못 푼다(우선순위가 더 높다). 그래서
     클래스로 옮기고 <b>두 칸일 때만</b> 걸리게 했다.
   ══════════════════════════════════════════════════════════════ */

/* 두 칸짜리 칸. 격자가 실제로 두 칸일 때만 두 칸을 먹는다. */
@media (width >= 48rem) {
	.form-card .grid > .grid-span-2 { grid-column: span 2; }
}

/* ── 상세 모달의 칸 배치 ────────────────────────────────────────
   detailPane 이 만드는 격자다. 예전에는 인라인으로 3열에 못 박아
   좁은 화면에서 이메일·주소가 글자 단위로 잘렸다. 폭에 따라 늘린다. */
.detail-card .grid { grid-template-columns: repeat(1, minmax(0, 1fr)); }
@media (width >= 40rem) {
	.detail-card .grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (width >= 64rem) {
	.detail-card .grid { grid-template-columns: repeat(3, minmax(0, 1fr)); }
}

/* 긴 값(이메일·주소·URL)이 칸을 밀어내지 않게. 줄바꿈은 되게 두되 넘치진 않는다. */
.detail-card .detail-value { overflow-wrap: anywhere; }

/* ── 좁은 화면의 모달 ───────────────────────────────────────────
   상세 모달은 1400×86vh, 등록 모달은 820px 로 잡혀 있다. 넓은 화면을
   기준으로 정한 값이라 휴대폰에서는 좌우 여백이 아깝고 높이도 모자란다.
   작은 화면에서는 화면을 거의 다 쓴다. */
@media (width < 40rem) {
	.svc-modal-box {
		width: 100% !important;
		max-width: 100% !important;
		height: 100% !important;
		max-height: 100% !important;
		border-radius: 0;
	}
	/* 폼 카드의 사방 여백을 줄인다. 좁은 화면에서는 여백보다 칸이 중요하다. */
	.form-card { padding: 0.75rem; }
	.form-card .grid { column-gap: 0.75rem; row-gap: 1rem; }
}

/* 모달 안의 그리드(터미널 고르기 등)가 좌우로 넘칠 때 가로 스크롤을 준다.
   화면 전체가 밀리는 것보다 그 칸만 미는 편이 낫다. */
.svc-modal-box .tui-grid-container { max-width: 100%; }

/* ============================================================
   검색칸 크게 — 2026-09-22 요청.

   기본 검색줄(.search-main-row)에만 걸린다. 상세 검색 패널은 그대로다.
   글자 크기는 안 건드린다 — 칸만 넓고 높아진다.

   붙이는 법 : 그 줄에 search-lg 를 같이 적는다.
       <div class="search-main-row search-lg flex ...">
   거래관리 화면에는 안 붙인다(요청).

   ★ height 에 !important 를 붙인 이유
     템플릿이 style="height: 3.4em" 을 인라인으로 들고 있다.
     인라인은 클래스보다 세서, !important 없이는 안 먹는다.
     (날짜 칸처럼 인라인이 없는 것도 있어서 값을 여기서 하나로 맞춘다.)

   ★ 폭은 40rem 부터만 바꾼다
     좁은 화면에서는 템플릿이 w-full 로 한 줄을 다 쓴다. 거기까지 건드리면
     칸이 화면 밖으로 나간다. sm(40rem) 부터 sm:w-28(7rem) 을 9rem 으로 넓힌다.

   ★ width 가 아니라 min-width 다
     이미 더 넓게 잡아 둔 칸이 있다 — 영중소구간 조회의 사업자번호는 sm:w-36 이다.
     width 로 못박으면 그런 칸을 도리어 줄인다. min-width 면 좁은 칸만 넓어지고
     넓은 칸은 그대로 있다.
   ============================================================ */
.search-main-row.search-lg input,
.search-main-row.search-lg select {
    height: 40px !important;
    padding-top: 0.375rem;
    padding-bottom: 0.375rem;
}

@media (width >= 40rem) {
    .search-main-row.search-lg input,
    .search-main-row.search-lg select { min-width: 9rem; }
}
