@charset "utf-8";
/* Thin 100 Light 300 Regular 400 Medium 500 Bold 700  Black 900 */
@import url('https://fonts.googleapis.com/css2?family=Noto+Sans+KR:wght@300;400;500;700;900&display=swap');
@import url('https://fonts.googleapis.com/css2?family=Monda:wght@400;700&display=swap');



html{box-sizing:border-box}*,*:before,*:after{box-sizing:inherit}
/* Extract from normalize.css by Nicolas Gallagher and Jonathan Neal git.io/normalize */
html{-ms-text-size-adjust:100%;-webkit-text-size-adjust:100%}

article,aside,details,figcaption,figure,footer,header,main,menu,nav,section{display:block}
summary{display:list-item}
audio,canvas,progress,video{display:inline-block}
progress{vertical-align:baseline}
audio:not([controls]){display:none;height:0}[hidden],template{display:none}
a{background-color:transparent;text-decoration:none; color:#404040}
a:active,a:hover{outline-width:0}
ol, ul, li { list-style:none; padding:0; margin:0 }
blockquote, q { quotes:none }
blockquote:before, blockquote:after, q:before, q:after { content:''; content:none }
table { border-collapse:collapse; border-spacing:0 }

abbr[title]{border-bottom:none;text-decoration:underline;text-decoration:underline dotted}
b,strong{font-weight:bolder}dfn{font-style:italic}mark{background:#ff0;color:#000}
small{font-size:80%}sub,sup{font-size:75%;line-height:0;position:relative;vertical-align:baseline}
sub{bottom:-0.25em}sup{top:-0.5em}figure{margin:1em 40px}img{border-style:none}
code,kbd,pre,samp{font-family:monospace,monospace;font-size:1em}hr{box-sizing:content-box;height:0;overflow:visible}
button,input,select,textarea,optgroup{font:inherit;margin:0}optgroup{font-weight:bold}
button,input{overflow:visible}button,select{text-transform:none}
button,[type=button],[type=reset],[type=submit]{-webkit-appearance:button}
button::-moz-focus-inner,[type=button]::-moz-focus-inner,[type=reset]::-moz-focus-inner,[type=submit]::-moz-focus-inner{border-style:none;padding:0}
button:-moz-focusring,[type=button]:-moz-focusring,[type=reset]:-moz-focusring,[type=submit]:-moz-focusring{outline:1px dotted ButtonText}
fieldset{border:1px solid #c0c0c0;margin:0 2px;padding:.35em .625em .75em}
legend{color:inherit;display:table;max-width:100%;padding:0;white-space:normal}textarea{overflow:auto}
[type=checkbox],[type=radio]{padding:0}
[type=number]::-webkit-inner-spin-button,[type=number]::-webkit-outer-spin-button{height:auto}
[type=search]{-webkit-appearance:textfield;outline-offset:-2px}
[type=search]::-webkit-search-decoration{-webkit-appearance:none}
::-webkit-file-upload-button{-webkit-appearance:button;font:inherit}
input:focus { outline: none;}
button:focus { outline: none;}
select:focus { outline: none;}
/* End extract */

html,body{
	font-family:'Pretendard', 'Noto Sans KR', -apple-system, BlinkMacSystemFont, sans-serif;
    background-color: #f6f6f6;
    font-size: 15px;
    letter-spacing: -0.01em;
    line-height: 1.6;
    color: #222;
    -webkit-font-smoothing: antialiased;
    -moz-osx-font-smoothing: grayscale;
}
	html{/*overflow-x:hidden*/}
body{
	margin:0;
}
h1{font-size:32px}h2{font-size:26px}h3{font-size:22px}h4{font-size:18px}h5{font-size:16px}h6{font-size:15px}.serif{font-family:serif}
h1,h2,h3,h4,h5,h6{font-family:'Pretendard', 'Noto Sans KR', sans-serif;font-weight:600;margin:10px 0;line-height:1.4;color:#1a1a1a}.wide{letter-spacing:4px}
hr{border:0;border-top:1px solid #eee;margin:20px 0}

.font1{font-family:'Monda'; font-weight:400; letter-spacing:-0.05em}
.font1-1{font-family:'Monda'; font-weight:500; letter-spacing:-0.05em}
.font2{font-family:'Noto Sans KR'; font-weight:500; letter-spacing:-0.05em}
.bold700{font-weight:700}

.image{max-width:100%;height:auto}img{vertical-align:middle}a{color:inherit}
.table,.table-all{border-collapse:collapse;border-spacing:0;width:100%;display:table}.table-all{border:1px solid #ccc}
.bordered tr,.table-all tr{border-bottom:1px solid #3d3e43}.striped tbody tr:nth-child(even){background-color:#f1f1f1}
.bordered td,.table-all td{border-right:1px solid #3d3e43}
.bordered td:last-child,.table-all td:last-child{border-right:none}
.table-all tr:nth-child(odd){background-color:#fff}.table-all tr:nth-child(even){background-color:#f1f1f1}
.hoverable tbody tr:hover,.ul.hoverable li:hover{background-color:#ccc}.centered tr th,.centered tr td{text-align:center}
.table td,.table th,.table-all td,.table-all th{padding:9px 8px;display:table-cell;text-align:left;vertical-align:center}
.btn,.button{border:none;display:inline-block;padding:10px 24px;vertical-align:middle;overflow:hidden;text-decoration:none;color:inherit;background-color:inherit;text-align:center;cursor:pointer;white-space:nowrap;border-radius: 6px;font-size:14px;font-weight:500;letter-spacing:-0.01em;transition: all 0.2s ease;}
.btn-sm{font-size:13px;letter-spacing:-0.02em;padding:6px 16px;}

.btn:hover{opacity:0.85;transform:translateY(-1px);}
.btn,.button{-webkit-touch-callout:none;-webkit-user-select:none;-khtml-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}   
input[disabled],.disabled,.btn:disabled,.button:disabled{cursor:not-allowed;opacity:0.3}.disabled *,:disabled *{pointer-events:none}
.btn.disabled:hover,.btn:disabled:hover{box-shadow:none}
.badge,.tag{background-color:#000;color:#fff;display:inline-block;padding-left:8px;padding-right:8px;text-align:center}.badge{border-radius:50%}
.ul{list-style-type:none;padding:0;margin:0}.ul li{padding:8px 16px;border-bottom:1px solid #ddd}.ul li:last-child{border-bottom:none}
.tooltip,.display-container{position:relative}.tooltip .text{display:none}.tooltip:hover .text{display:inline-block}
.ripple:active{opacity:0.5}.ripple{transition:opacity 0s}
.input{padding:8px;display:block;border:none;border-bottom:1px solid #ccc;width:100%}
.dropdown-click,.dropdown-hover{position:relative;display:inline-block;cursor:pointer}
.dropdown-hover:hover .dropdown-content{display:block}
.dropdown-hover:first-child,.dropdown-click:hover{background-color:#ccc;color:#000}
.dropdown-hover:hover > .button:first-child,.dropdown-click:hover > .button:first-child{background-color:#ccc;color:#000}
.dropdown-content{cursor:auto;color:#000;background-color:#fff;display:none;position:absolute;min-width:160px;margin:0;padding:0;z-index:1}
.sidebar{height:100%;width:200px;background-color:#fff;position:fixed!important;z-index:1;overflow:auto}
.bar-block .dropdown-hover,.bar-block .dropdown-click{width:100%}
.bar-block .dropdown-hover .dropdown-content,.bar-block .dropdown-click .dropdown-content{min-width:100%}
.bar-block .dropdown-hover .button,.bar-block .dropdown-click .button{width:100%;text-align:left;padding:8px 16px}
.main,#main{transition:margin-left .4s}
.modal{z-index:3;display:none;padding-top:100px;position:fixed;left:0;top:0;width:100%;height:100%;overflow:auto;background-color:rgb(0,0,0);background-color:rgba(0,0,0,0.4)}
.modal-content{margin:auto;background-color:#fff;position:relative;padding:0;outline:0;width:600px}
.bar{width:100%;overflow:hidden}.center .bar{display:inline-block;width:auto}
.bar .bar-item{padding:8px 16px;float:left;width:auto;border:none;display:block;outline:0}
.bar .dropdown-hover,.bar .dropdown-click{position:static;float:left}
.bar .button{white-space:normal}
.bar-block .bar-item{width:100%;display:block;padding:8px 16px;text-align:left;border:none;white-space:normal;float:none;outline:0}
.bar-block.center .bar-item{text-align:center}.block{display:block;width:100%}
.responsive{display:block;overflow-x:auto}
.container:after,.container:before,.panel:after,.panel:before,.row:after,.row:before,.row-padding:after,.row-padding:before,
.cell-row:before,.cell-row:after,.clear:after,.clear:before,.bar:before,.bar:after{content:"";display:table;clear:both}
.wcol, .half,.third,.twothird,.threequarter,.quarter{float:left;width:100%}
input[disabled] {
  background-color: #f0f0f0;  /* 회색 배경 */
  color: #999999;             /* 흐린 텍스트 */
  border: 1px solid #ddd;     /* 테두리 색 */
  cursor: not-allowed;        /* 마우스 커서 */
}

.wcol{float:left;}
.wcol.f1{width:613px; margin-right:20px}
.s1{width:8.33333%}.s2{width:16.66666%}.s3{width:24.99999%}.s4{width:33.33333%}
.s5{width:41.66666%}.s6{width:49.99999%}.s7{width:58.33333%}.s8{width:66.66666%}
.s9{width:74.99999%}.s10{width:83.33333%}.s11{width:91.66666%}.wcol.s12{width:99.99999%}

@media (min-width:601px){
.wcol.m1{width:8.33333%}.wcol.m2{width:16.66666%}.wcol.m3,.quarter{width:24.99999%}.wcol.m4,.third{width:33.33333%}
.wcol.m5{width:41.66666%}.wcol.m6,.half{width:49.99999%}.wcol.m7{width:58.33333%}.wcol.m8,.twothird{width:66.66666%}
.wcol.m9,.threequarter{width:74.99999%}.wcol.m10{width:83.33333%}.wcol.m11{width:91.66666%}.wcol.m12{width:99.99999%}
}
@media (min-width:993px){
.wcol.l1{width:8.33333%}.wcol.l2{width:16.66666%}.wcol.l3{width:24.99999%}.wcol.l4{width:33.33333%}
.wcol.l5{width:41.66666%}.wcol.l6{width:49.99999%}.wcol.l7{width:58.33333%}.wcol.l8{width:66.66666%}
.wcol.l9{width:74.99999%}.wcol.l10{width:83.33333%}.wcol.l11{width:91.66666%}.wcol.l12{width:99.99999%}}
.rest{overflow:hidden}.stretch{margin-left:-16px;margin-right:-16px}

.mr0 {margin-right:0px !important}
.mr1 {margin-right:1% !important}
.mr2 {margin-right:2.5% !important}
.mr5 {margin-right:5px !important}
.mr10 {margin-right:10px !important}
.mr15 {margin-right:15px !important}
.mr20 {margin-right:20px !important}
.mr30 {margin-right:30px !important}
.mr50 {margin-right:50px !important}
.ml0 {margin-left:0px !important}
.ml5 {margin-left:5px !important}
.ml10 {margin-left:10px !important}
.ml15 {margin-left:15px !important}
.ml20 {margin-left:20px !important}
.ml30 {margin-left:30px !important}
.ml40 {margin-left:40px !important}
.ml50 {margin-left:50px !important}
.mt3 {margin-top:3px !important}
.mt5 {margin-top:5px !important}
.mt10 {margin-top:10px !important}
.mt15 {margin-top:15px !important}
.mt20 {margin-top:20px !important}
.mt25 {margin-top:25px !important}
.mt30 {margin-top:30px !important}
.mt40 {margin-top:40px !important}
.mt50 {margin-top:50px !important}
.mt65 {margin-top:65px !important}
.mb10 {margin-bottom:10px !important}
.mb15 {margin-bottom:15px !important}
.mb20 {margin-bottom:20px !important}
.mb30 {margin-bottom:30px !important}

.pt10 {padding-top:10px !important}
.pt15 {padding-top:15px !important}
.pt30 {padding-top:30px !important}
.pb10 {padding-bottom:10px !important}
.pl10{padding-left:10px !important}
.pl20{padding-left:20px !important}
.pr10{padding-right:10px !important}
.pr20{padding-right:20px !important}

.content,.auto{margin-left:auto;margin-right:auto}
.content{max-width:1200px}
.auto{max-width:1140px}
.cell-row{display:table;width:100%}.cell{display:table-cell}
.cell-top{vertical-align:top}
.cell-middle{vertical-align:middle}
.cell-bottom{vertical-align:bottom}
.hide{display:none!important}
.show-block,.show{display:block!important}
.show-inline-block{display:inline-block!important}

html, body, div, span, applet, object, iframe, h1, h2, h3, h4, h5, h6, p, blockquote, pre, a, abbr, acronym, address, big, cite, code, del, dfn, em, img, ins, kbd, q, s, samp, small, strike, strong, sub, sup, tt, var, b, u, i, center, dl, dt, dd, ol, ul, li, fieldset, form, label, legend, table, caption, tbody, tfoot, thead, tr, th, td, article, aside, canvas, details, embed, figure, figcaption, footer, header, hgroup, menu, nav, output, ruby, section, summary, time, mark, audio, video { margin:0; padding:0; border:0; box-sizing: border-box;  }

body { line-height:1 }
ol, ul { list-style:none; padding:0; margin:0 }
blockquote, q { quotes:none }
blockquote:before, blockquote:after, q:before, q:after { content:''; content:none }
table { border-collapse:collapse; border-spacing:0 }
a { text-decoration:none; color:#666 }

fieldset { min-width: 0; padding: 0; margin: 0; border: 0; }
input[type="text"],input[type="submit"],input[type="password"],input[type="date"],textarea,select,select option,button{ height: 42px; padding: 8px 12px; border: solid 1px #d0d0d0; background-color:#ffffff; box-sizing: border-box; font-family:'Pretendard', 'Noto Sans KR', sans-serif; font-size: 14px; border-radius: 6px; transition: border-color 0.2s, box-shadow 0.2s;}
input[type="text"]:focus,input[type="password"]:focus,input[type="date"]:focus,textarea:focus,select:focus{ border-color: #0066cc; box-shadow: 0 0 0 3px rgba(0, 102, 204, 0.1);}
input[type="search"] { box-sizing: border-box; }
input[type="radio"], input[type="checkbox"] { line-height: normal; }
input[type="file"] { display:inline-block; }
input[type="range"] { display: block; width: 100%; }
select[multiple], select[size] { height: auto; }
input[type="file"]:focus, input[type="radio"]:focus, input[type="checkbox"]:focus { outline: thin dotted; outline: 5px auto; outline-offset: -2px; }

/* Variables */
:root {
  --bg-page: #f5f6f7;
  --bg-header: #1f2329;
  --text-primary: #1f2329;
  --text-light: #6e7280;
  --border: #d9d9d9;
  --radius: 6px;
  --shadow-sm: 0 2px 8px rgba(0,0,0,0.05);
  --color-primary: #00bfa6;
  --color-primary-dark: #009582;
  --color-accent: #f5f5f5;
  --font-base: "Noto Sans KR", system-ui, -apple-system, sans-serif;
  --transition: 0.2s ease-in-out;
}

/* Global resets / utility */
* {
  box-sizing: border-box;
}
body {
  margin: 0;
}
h1 {
  margin: 0;
  font-size: 36px;
  font-weight: 700;
}
button {
  cursor: pointer;
  border: none;
  background: none;
  font: inherit;
}
input, select {
  font: inherit;
  outline: none;
  border: 1px solid #ccc;
  border-radius: 4px;
}

/* Layout */
#wrap {
	margin: 0px auto;
    position: relative;
    width: 100%;
    min-height: 100vh;
    display: flex;
    flex-direction: column;
}
.header {
    background: #0f172a;;
}
.header-wrap {
    position: relative;
    height: 70px;
}
.header .logo {
    text-align: center;
    padding: 17px 0;
}
.header .logo p{
color: #fff;
    font-size: 17px;
    padding: 3px;
}
.header .logo img {
    width: 210px;
}
.header .menu {
    flex-grow: 2;
    margin-left: 100px;
}
.header .menu > ul {
    font-size: 16px;
    line-height: 65px;
}
.header .main-menu{
	display: inline-block;
    text-align: center;
    position: relative;
    color: #fff;
}
.header .main-menu a{
	display: inline-block;
    text-align: center;
    margin-right: 40px;
    position: relative;
    color: #fff;
}
.header .sub-menu {
	display: inline-block;
    text-align: center;
    margin-right: 3%;
    position: relative;
    color: rgba(255, 255, 255, 0.6);
}
.header .menu ul ul {
    position: absolute;
    visibility: hidden;
    opacity: 0;
    left: 0;
    width: 200px;
    z-index: 1000;
}
.header .menu ul li > ul {
    display: flex;
    background: #1e242c;
    flex-direction: column;
}
.header .menu ul li a.active {
    color: #54c9ff;
    font-weight: 700;
}
.header .menu ul li a.selected {
    color: #22B7D2;
    text-decoration: underline;
    text-decoration-color: #22B7D2;
    text-decoration-thickness: 2px;
    text-underline-offset: 7px;
}
.header .menu ul li:hover a {
    color: #22B7D2;
    text-decoration: underline;
    text-decoration-color: #22B7D2;
    text-decoration-thickness: 2px;
    text-underline-offset: 7px;
}
.header .menu ul li a {
    position: relative;
    display: inline-block;
    padding: 10px 0;
	font-weight: 500;
	font-size: 16px;
}
.header .menu ul li a.active:before {
    position: absolute;
    left: 50%;
    top: -10px;
    content: "";
    width: 10px;
    height: 10px;
    border-radius: 50%;
    background-color: #54c9ff;
}
.container {
  padding: 2rem 1rem 4rem;
  flex: 1;
  box-sizing: border-box;
}
/* 햄버거 버튼 */
.hamburger {
    width: 25px;
    height: 20px;
    cursor: pointer;
    display: flex;
    flex-direction: column;
    justify-content: space-between;
    margin-right: 15px;
    position: relative;
    top: 25px;
    left: 20px;
}
.hamburger span {
	display: block;
	height: 3px;
    background: #fff;
	border-radius: 2px;
	transition: 0.3s;
}

/* 사이드 메뉴 */
.side-menu {
	position: fixed;
	top: 0;
	left: 0;
	width: 250px;
	height: 100%;
	background: #0f172a;
	color: #666;
	box-shadow: 2px 0 8px rgba(0,0,0,0.3);
	height: calc(100vh);
	margin-left: -250px;
	transition: margin-left 0.3s ease-in-out;
	z-index: 1000;
	overflow-y: auto;
	background: #0f172a;
    scrollbar-gutter: stable;
    /* Chrome, Safari, Edge */
    -ms-overflow-style: none;  /* IE, Edge */
    scrollbar-width: none;  /* Firefox */
}

.arrow.rotate {
    transform: rotate(90deg);
}
.arrow {
    transition: transform 0.3s ease;
}
.side-menu.open {
	margin-left : 0;
}
.menu-item {
   padding : 0 15px;
}

.menu-header {
	padding: 1rem 1.5rem;
    background: #0f172a;
    font-weight: 500;
    color: #fff;
    cursor: pointer;
    display: flex;
    align-items: center;
    justify-content: space-between;
    transition: all 0.5s ease-in-out;
	border-bottom: 1px solid #4d5a68;
}

.menu-header:hover {
	background: rgba(255,255,255,0.08);
	color: #3B82F6;

}

.menu-header.active {
	background: #334155;
	color: #3B82F6;
}

.submenu {
	max-height: 0;
	overflow: hidden;
	/*transition: max-height 0.5s ease-in-out;*/
	background: #fafbfc;
}

.submenu.open {
	max-height: 800px;
}

.submenu-item {
	padding: 0.75rem 2rem;
	cursor: pointer;
    font-size: 13px;
    font-weight: 500;
    color: #333;
}

.submenu-item:hover {
	background: #e3f2fd;
	color: #00b2eb;
}

.submenu-item.active {
	background: #3B82F6;
	color: #fff;
}

/* 본문 래퍼 */
#wrap {
	margin-left: 0;
	transition: margin-left 0.3s ease-in-out;;
}
.header-wrap,
.container,
.footer {
    margin-left: 0;
    transition: margin-left 0.3s ease-in-out, width 0.3s ease-in-out !important; /* 항상 애니메이션 가능 */
}

#wrap.shift .header-wrap,
#wrap.shift .container {
	margin-left: 250px !important;
}

#wrap.shift .footer {
	margin-left: 250px !important;
	width: calc(100% - 250px) !important;
}
.header .login-info {
    padding: 0px 22px;
    color: #fff;
    float: right;
}
.header .login-info .user-info {
    position: relative;
    font-size: 14px;
	font-weight: 500;
	line-height: 2;
}
.logout {
    font-size: 12px;
	color:#fff;
    border: 1px solid #fff;
    border-radius: 15px;
    padding: 7px 15px;
    font-weight: 300;
    margin-left: 20px;
    letter-spacing: -0.05em;
}
.search-area .search-header {
	display: flex;
    border-bottom: 1px solid #dadada;
    padding-bottom: 10px;
}
.search-header .tab-menu {
    display: flex;
}
.search-header h4 {
    display: inline-block;
    font-size: 18px;
    letter-spacing: -0.05em;
    font-weight: 700;
    margin: 0;
	color: #00b2eb;
}
.search-header .breadcrumb {
    margin-left: auto;
    padding: 0;
    margin-bottom: 0;
}
.search-header .breadcrumb > li {
    position: relative;
    display: inline-block;
    padding: 0 10px;
    font-size: 14px;
    letter-spacing: -0.05em;
    color: #777777;
}
.search-header .breadcrumb > li:after {
    content: "";
    position: absolute;
    top: 3px;
    right: 0;
    width: 1px;
    height: 15px;
    background: #777777;
    transform: rotate(20deg);
}
.search-header .breadcrumb > li:first-child:after,
.search-header .breadcrumb > li:last-child:after {
    content: "";
    position: absolute;
    top: 0;
    right: 0;
    width: 0;
    height: 0;
}
.search-header .breadcrumb > li:first-child {
	padding: 0
}
.ihome {
    width: 17px;
    height: 17px;
    background-position: -3px -3px;
    margin: auto auto;
}
.common-icon {
    background-image: url(../images/ic-sm-home.png);
    background-repeat: no-repeat;
    display: inline-block;
}
a:active, a:hover {
    outline-width: 0;
}

.search-content {
  background: #fff;
  padding: 16px 20px;
  border-radius: 10px;
  box-shadow: var(--shadow-sm);
  max-width: 100%;
  overflow: hidden;
  margin-top: 10px;
}

.search-content .filter {
  display: flex;
  gap: 16px;
  align-items: flex-end;
  flex-wrap: wrap;
}
.filter {
  display: flex;
  flex-wrap: wrap;
  gap: 12px;
  align-items: flex-end; /* 레이블 기준 정렬 */
  padding: 8px 0;
}
.filter-item {
  display: flex;
  flex-direction: column;
  min-width: 150px;
  position: relative;
  font-size: 14px;

}

.filter-label {
  margin-bottom: 6px;
  color: #444;
  font-weight: 600;
  font-size: 13px;
  letter-spacing: -0.01em;
}
.form-box {
	padding: 10px 12px;
    border: 1px solid #d1d5db;
    border-radius: 6px;
    background: #fff;
    font-size: 14px;
    width: 180px;
    min-width: 120px;
}
.form-box:focus {
	border-color: #1ab394;
}

.filter select {
  appearance: none;
  background-image: url(../images/select-arrow.png);
  background-repeat: no-repeat;
  background-position: right 10px center;
  background-size: 10px 6px;
  padding-right: 32px;
}
/* 레거시 버튼 - 통합 스타일로 대체됨 (하단 버튼 스타일 섹션 참조) */
.btn-view {
	color: #fff !important;
    background-color: #00A88E !important;
    border: none;
    padding: 3px 12px;
    height: 30px;
    border-radius: 6px;
}
.btn-view:hover {
    background-color: #009582 !important;
    filter: brightness(1.1);
}
.search-btn {
	display: flex;
	margin-top: 25px;
}
.search-btn .summary {
    flex: 1;
    align-content: end;
}

/* Content Header (목록 상단 영역) */
.content-header {
    display: flex;
    justify-content: space-between;
    align-items: center;
    padding: 14px 20px;
    background: #f8f9fa;
    border-radius: 12px 12px 0 0;
    border: 1px solid #e1e8ed;
    border-bottom: none;
    margin-top: 16px;
    box-shadow: 0 -2px 8px rgba(0, 0, 0, 0.04);
}
.content-header .summary {
    font-size: 14px;
    color: #555;
    font-weight: 500;
}
.content-header .summary span {
    font-weight: 700;
    color: #4a90e2;
}
.content-header .btn-group {
    display: flex;
    gap: 8px;
}

/* Table */
.content-area {
    background: #fff;
    border-radius: 0;
    overflow: hidden;
    box-shadow: none;
    margin-top: 0;
    overflow-y: auto;
    position: relative;
    height: 520px;
    border-bottom: 0;
    border-left: 1px solid #e1e8ed;
    border-right: 1px solid #e1e8ed;
    border-top: 1px solid #e1e8ed;
}

/* content-header와 content-area를 감싸는 wrapper */
.content-wrapper {
    background: #fff;
    border-radius: 8px;
    box-shadow: var(--shadow-sm);
    margin-top: 16px;
    overflow: hidden;
}
.content-wrapper .content-header {
    border-radius: 0;
}
.content-wrapper .content-area {
    box-shadow: none;
    border-radius: 0;
}
.scroll-table {
  width: 100%;
  border-collapse: collapse;
}

.scroll-table thead th {
  position: sticky;
  top: 0;
  background-color: #f9f9f9;
  z-index: 1;
  border-bottom: 1px solid #ccc;
}

.scroll-table th,
.scroll-table td {
  padding: 10px;
  text-align: center;
}
.table {
  width: 100%;
  border-collapse: collapse;
  font-size: 14px;
  line-height: 1.5;
}
.table thead {
  background: #f8f9fa;
  border-bottom: 2px solid #e9ecef;
}
.table th,
.table td {
	text-align: center;
  border-bottom: 1px solid #e9ecef;
  white-space: nowrap;
}
.table th {
	padding: 14px 12px;
	color: #495057;
	font-weight: 600;
	letter-spacing: -0.01em;
}
.table td {
    padding: 12px;
    color: #333;
}
.table th {
  font-weight: 600;
  position: relative;
}
.table tbody tr:hover {
  background: #f8f9fa;
}
.table-status {
  font-size: 12px;
  padding: 4px 10px;
  border-radius: 12px;
  display: inline-block;
}
.status-pending { background: #fff7e6; color: #d47f00; }
.status-approved { background: #e6f7ff; color: #0275d8; }
.status-rejected { background: #ffe6e6; color: #d8000c; }

/* Pagination */
.pagination-container {
    position: relative;
    width: 100%;
    background: #fff;
    padding: 16px 20px;
    overflow: hidden;
    box-shadow: 0 2px 8px rgba(0, 0, 0, 0.06);
    border-radius: 0 0 12px 12px;
    border-top: 1px solid #e1e8ed;
    margin-top: 0;
}
.pagination {
    display: flex;
    gap: 6px;
    list-style: none;
    justify-content: center;
    flex-wrap: wrap;
}
.pagination-item {
  width: 36px;
  height: 36px;
  display: flex;
  align-items: center;
  justify-content: center;
  border: 1px solid #d9d9d9;
  border-radius: 4px;
  font-size: 13px;
  cursor: pointer;
  background: #fff;
  transition: var(--transition);
}
.pagination-item.active {
  background: var(--text-primary);
  color: #fff;
  border-color: var(--text-primary);
}
.pagination-item:hover:not(.pagination-item.active) {
  background: #f2f4f7;
}
.pagination-item.double-prev,
.pagination-item.double-next,
.pagination-item.prev,
.pagination-item.next {
  font-size: 16px;
  font-weight: bold;
  background-color: #f9f9f9;
  color: #666;
}

.pagination-item.double-prev:hover,
.pagination-item.double-next:hover,
.pagination-item.prev:hover,
.pagination-item.next:hover {
  background-color: #e0e0e0;
}

.pagination-item.disabled {
  pointer-events: none;
  color: #ccc;
  background-color: #f5f5f5;
  border-color: #eee;
}
.pagination-item img.pagination-icon {
  width: 16px;
  height: 16px;
  object-fit: contain;
}
.pagination-select {
    position: absolute;
    right: 33px;
    top: 21px;
    display: flex;
    align-items: center;
    gap: 6px;
    font-size: 14px;
}

.pagination-select select {
	appearance: none;
    background-image: url(../images/select-arrow.png);
    background-repeat: no-repeat;
    background-position: right 7px center;
    background-size: 10px 6px;
    height: 36px;
    cursor: pointer;
}
.pagination-select .form-box {
	width: 75px;
    min-width: 75px;
}
/* Totals / info */
.summary {
  font-size: 13px;
  color: var(--text-light);
}


.footer {
  background-color: #bdbdbd;
  color: #fff;
  font-size: 12px;
  padding: 20px;
  flex-shrink: 0;
  margin-top: auto;
  width: 100%;
  box-sizing: border-box;
}

.footer-container {
  width: 100%;
  display: flex;
  align-items: center;
  gap: 20px;
}

.footer-logo img {
  height: 40px;
}

.footer-info p {
  margin: 2px 0;
  line-height: 1.4;
}


/*로그인*/
#login {
    overflow: hidden;
	width: 100%;
    height: 99vh;
    background: url(../images/bg.png) no-repeat center center;
    overflow: hidden;
    background-size: cover;
}
#login h4 {
    font-size: 20px;
    color: #dbdbdb;
    font-weight: 700;
    text-align: center;
}
#login .container {
    max-width: 600px;
    overflow: hidden;
    padding: 65px 20px 100px 20px;
    font-size: 14px;
    font-weight: 400;
    background: #fff;
    box-shadow: var(--shadow-sm);
    border-radius: 22px;
	margin: 7% auto;
}
#login h3 {
    font-size: 46px;
    color: #363636;
    font-weight: 700;
    text-align: center;
}
.login-wrap {
    width: 500px;
    margin: 30px auto;
}

.login-wrap .login-top {
    text-align: center;
    font-size: 18px;
}
.login-wrap .login-top {
    padding: 130px 0 30px 0;
    background: url(../images/ic-login-top.png) no-repeat top center;
    font-weight: 500;
}




.login-wrap .box input {
    padding-left: 55px;
}
.login-wrap .input-id input {
    background: url(../images/icon-id.png) no-repeat left 25px center;
}
.box label {
    font-size: 14px;
    color: #212225;
    font-weight: bold;
    display: block;
    margin-bottom: 8px;
}
.login-wrap .box label {
    display: none;
}



.checkbox, .radio {
    position: relative;
    display: inline-block;
    padding: 0 0 0 25px;
    height: 18px;
    cursor: pointer;
    margin-right: 20px;
    color: #848484;
    line-height: 28px;
}
.checkbox.style1 {
    height: 20px;
    line-height: 20px;
    vertical-align: middle;
}
.login-wrap .checkbox, .join-wrap .checkbox, .agreed-box label {
    padding-left: 0;
}
.login-wrap .checkbox {
    padding-left: 0;
}
.login-wrap .box input {
    padding-left: 55px;
}
.login-wrap .input-id input {
    background: url(../images/icon-id.png) no-repeat left 25px center;
}




.login-wrap .box input::placeholder {font-size:15px; color:#999; letter-spacing: -1px;}
.login-wrap .input-id input {background:url("../images/icon-id.png") no-repeat left 25px center;}
.login-wrap .input-pw input {background:url("../images/icon-pw.png") no-repeat left 25px center;}

.content1 input[type=text], input[type=number], input[type=password], input[type=text], select {
    vertical-align: middle;
    border: 1px solid #cfcfcf;
    padding: 3px 10px;
}
.box input {
    height: 55px;
    border-radius: 10px;
    border: 1px solid #ccc;
    display: inline-block;
    padding: 0 20px;
    font-size: 15px;
    width: 100%;
    letter-spacing: -0.5px;
}
.checkbox.style1 input {
    display: none;
}
input[type='checkbox'] {
    width: 15px;
    height: 15px;
    opacity: 0;
    position: fixed;
    margin: 11px 0;
    cursor: pointer;
}
.checkbox.style1 .icon {
    display: inline-block;
    width: 20px;
    height: 20px;
    position: relative;
    cursor: pointer;
    margin: 0 5px 2px 0;
    vertical-align: middle;
    background-color: #fff;
    border-radius: 5px;
    border: 1px solid #ccc;
}
.checkbox.style1 .text {
    cursor: pointer;
    color: #333333;
    font-weight: 500;
    letter-spacing: -0.5px;
}
.login-wrap .login-btn {
    border-radius: 10px;
    font-weight: 600;
}
.login-wrap .btn.block {
    max-width: 100%;
    height: 55px;
    line-height: 38px;
}

.login-wrap .login-btn {
    font-family: 'Montserrat', 'Noto Sans KR', sans-serif;
    display: inline-block;
    margin-bottom: 0;
    font-size: 18px;
    font-weight: normal;
    text-align: center;
    white-space: nowrap;
    vertical-align: middle;
    cursor: pointer;
    background-image: none;
    background: #22B7D2;
    color: #ffffff;
    border-radius: 10px;
    font-weight: 600;
}



.pop-overlay {
  display: none;
  position: fixed;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  background: rgba(0, 0, 0, 0.5);
  z-index: 9999;
  justify-content: center;
  align-items: center;
  backdrop-filter: blur(2px);
}

.pop-content {
  background: #fff;
  width: 360px;
  border-radius: 12px;
  box-shadow: 0 20px 60px rgba(0, 0, 0, 0.3);
  overflow: hidden;
  font-family: 'Pretendard', 'Noto Sans KR', sans-serif;
  animation: popup-fade-in 0.3s ease;
  padding: 28px 32px;
}

.pop-content .btn-close-x {
  position: absolute;
  top: 10px;
  right: 10px;
  background: none;
  border: none;
  font-size: 22px;
  cursor: pointer;
  color: #666;
  transition: color 0.2s;
  top: -12px;
}

.pop-content .btn-close:hover {
  color: #000;
}
.pop-content.small {
	width: 360px;
}
.pop-content.medium {
	width: 600px;
}

/* small, medium 팝업 1열 레이아웃 */
.pop-content.small .filter,
.pop-content.medium .filter {
    flex-direction: column;
    gap: 12px;
}

.pop-content.small .filter-item,
.pop-content.medium .filter-item {
    width: 100%;
    min-width: unset;
}

.pop-content.small .filter-item .form-box,
.pop-content.medium .filter-item .form-box,
.pop-content.small .filter-item input,
.pop-content.medium .filter-item input,
.pop-content.small .filter-item select,
.pop-content.medium .filter-item select {
    width: 100%;
}

/* textarea 크기 (100자 이상 입력 가능하도록) */
.pop-content.small textarea,
.pop-content.medium textarea,
.pop-content.small textarea.form-box,
.pop-content.medium textarea.form-box {
    width: 100%;
    min-height: 80px;
    height: auto;
    resize: vertical;
    line-height: 1.5;
}

.pop-content.big-large-three .date-range input,
.pop-content.big-large .date-range input,
.pop-content.large .date-range input,
.pop-content.medium .date-range input,
.pop-content.big-large-three .date-range select,
.pop-content.big-large .date-range select,
.pop-content.large .date-range select,
.pop-content.medium .date-range select{
	width: 48.1%;
}
.pop-content.large {
	width: 900px;
}
.pop-content.big-large {
    width: 1200px;
}
.pop-content.big-large-three {
    width: 90%;
    max-height: 90%;
}
.pop-content .filter {
    flex-direction: column;
	align-items: normal;
}
.pop-content.big-large .filter {
    flex-direction: row;
	overflow: hidden;
}
.pop-content.big-large .filter-item{
    width:100%;
}
.pop-content.large .filter {
    flex-direction: row;
	overflow: hidden;
}
.pop-content.big-large-three .filter {
    flex-direction: row;
	overflow: hidden;
}
.pop-content.big-large-three .filter-item{
    width:32.5%;
}

/* 정기권 수정 팝업 - 스크롤 및 비고란 */
#popUpdateSeasonticketIssuance .pop-content,
#popUpdateSeasonticketIssuanceCompany .pop-content {
    overflow-y: auto;
    display: flex;
    flex-direction: column;
}
#popUpdateSeasonticketIssuanceComment,
#popUpdateSeasonticketIssuanceCompanyComment {
    min-height: 80px;
    min-width: 100%;
    resize: vertical;
}

.pop-content .filter select,
.pop-content .filter input{
    width:100%;
}
.pop-header {
  position: relative;
  font-size: 20px;
  font-weight: 700;
  color: #1a1a1a;
  letter-spacing: -0.02em;
}
.pop-header .tit {
    width: 100%;
    border-bottom: 1px solid var(--page-border-color);
    padding-bottom: 18px;
    margin-bottom: 8px;
}

.pop-body {
	padding: 20px 8px;
	font-size: 15px;
	color: #444;
	background-color: #fff;
	line-height: 1.7;
    max-height: 550px;
    overflow: auto;
}
.pop-body p{
    text-align: center;
    color: #444;
    font-size: 15px;
    padding: 15px;
    line-height: 1.7;
}

.pop-footer {
  display: flex;
  justify-content: end;
  gap: 8px;
  padding: 24px 8px 0;
  border-top: 1px solid #f0f0f0;
  margin-top: 16px;
}

@keyframes pop-fade-in {
  from { opacity: 0; transform: scale(0.95); }
  to { opacity: 1; transform: scale(1); }
}
/*파일업로드*/
.input-btn-wrap,
.file-wrap {
    display: flex;
}
.input-btn-wrap input,
.file-wrap input {
	border-top-right-radius: 0;
    border-bottom-right-radius: 0;
}

.file-label {
  position: absolute;
  font-size: 12px;
  color: gray;
  margin-top: -20px;
  margin-left: 4px;
}

.input-box {
  flex-grow: 1;
  padding: 10px;
  border: 1px solid #ccc;
  border-radius: 6px;
}

input[type="file"].hidden-file {
  display: none;
}
.btn-check,
.file-btn {
	border-top-left-radius: 0;
    border-bottom-left-radius: 0;
}



/*체크박스, 라디오버튼*/


.screen-reader { /* 스크린 리더를 고려해서 체크박스를 화면에서 숨김 */
    position: absolute;
    width: 1px;
    height: 1px;
    padding: 0;
    border: 0;
    overflow: hidden;
    margin: -1px;
    clip-path: inset(50%);
}

.label-box {
    position: relative;
}

.check-icon {
    width: 22px;
    height: 22px;
    border-radius: 4px;
    background-color: #fff;
    border: 1px solid gray;
    position: absolute;
    left: 0;
    top: 50%;
    transform: translateY(-50%);
}
.check-icon::before {
    content: "";
    position: absolute;
    box-sizing: border-box;
    width: 30%;
    height: 55%;
    left: 50%;
    top: 50%;
}
.radio-box,
.check-box {
    height: 100%;
    display: flex;
    gap: 10px;
    align-items: baseline;
    margin-top: 6px;
}
.radio-box .filter-label,
.check-box .filter-label {
    padding: 0 0 7px 0px;
}
.radio-box label,
.check-box label {
    padding-left: 30px;
    position: relative;
    cursor: pointer;
}
[type="checkbox"]:checked + .label-box .check-icon {
    border-color:  #00b2eb;
    background-color: #00b2eb;
}
[type="checkbox"]:checked + .label-box .check-icon::before {
    transform: translateX(-50%) translateY(-70%) rotateZ(40deg);
    border-right: 2px solid #fff;
    border-bottom: 2px solid #fff;
}

/*라디오버튼*/

.radio-icon {
    width: 22px;
    height: 22px;
    border-radius: 50%;
    background-color: #fff;
    border: 1px solid gray;
    position: absolute;
    left: 0;
    top: 50%;
    transform: translateY(-50%);
}
.radio-icon::before {
    content: "";
    position: absolute;
    box-sizing: border-box;
    width: 12px;
    height: 12px;
    left: 4px;
    top: 4px;
    border-radius: 13px;
    background: #fff;
}

[type="radio"]:checked + .label-box .radio-icon {
    border-color:  #00b2eb;
    background-color: #fff;
}
[type="radio"]:checked + .label-box .radio-icon::before {
    border-color: #00b2eb;
	background-color: #00b2eb;
}
[type="radio"]:checked + .label-box label {
    color: #00b2eb;
}
.table .check-box {
    width: 0;
}

/* 테이블 체크박스 스타일 */
.th-check,
.td-check {
    width: 40px;
    text-align: center;
    vertical-align: middle;
}
.table-check-label {
    display: inline-flex;
    justify-content: center;
    align-items: center;
    cursor: pointer;
    margin: 0;
    padding: 0;
}
.table-check-label .check-icon {
    position: relative;
    width: 18px;
    height: 18px;
    border-radius: 4px;
    background-color: #fff;
    border: 1px solid #ccc;
    display: inline-block;
}
.table-check-label .check-icon::before {
    content: "";
    position: absolute;
    box-sizing: border-box;
    width: 30%;
    height: 55%;
    left: 50%;
    top: 50%;
}
.table-check-label input:checked + .check-icon {
    border-color: #00b2eb;
    background-color: #00b2eb;
}
.table-check-label input:checked + .check-icon::before {
    transform: translateX(-50%) translateY(-70%) rotateZ(40deg);
    border-right: 2px solid #fff;
    border-bottom: 2px solid #fff;
}



.card-container,
.pop-content .card-container {
	display: flex;
	background-color: #ffffff;
	border-radius: 12px;
	box-shadow: 0 4px 20px rgba(0, 0, 0, 0.1);
	overflow: hidden;
    height: 500px;
}
.left-menu,
.container .tree-panel,
.pop-content .tree-panel {
	flex: 0 0 300px;
	padding: 24px;
	background-color: #f9fafb;
	border-right: 1px solid #e2e8f0;
	overflow-y: auto;
}

.container .list-panel,
.pop-content .list-panel {
	flex: 1;
	padding: 24px;
	display: flex;
	flex-direction: column;
	overflow-y: auto;
}
.mapping-container h2,
.left-section h2,
.left-menu h2,
.container .tree-panel h2,
.pop-content .tree-panel h2, .list-panel h2 {
    margin-top: 0;
    font-size: 1rem;
    color: #334155;
    border-bottom: 1px solid #e2e8f0;
    padding-bottom: 12px;
    margin-bottom: 24px;
}
.container .list-items,
.pop-content .list-items {
	list-style: none;
	padding: 0;
	margin: 0;
	flex-grow: 1;
}

.container .list-item,
.pop-content .list-item {
	display: flex;
	justify-content: space-between;
	align-items: center;
	padding: 12px;
	border-bottom: 1px solid #e2e8f0;
}

.container .list-item:last-child,
.pop-content .list-item:last-child {
	border-bottom: none;
}

.pop-content .list-item button {
	background-color: #ef4444;
	color: white;
	border: none;
	padding: 6px 12px;
	border-radius: 6px;
	cursor: pointer;
	font-size: 0.875rem;
	transition: background-color 0.2s ease;
}

.pop-content .list-item button:hover {
	background-color: #dc2626;
}

.pop-content .add-card {
	background-color: #f9fafb;
	padding: 10px;
	border-radius: 12px;
	box-shadow: 0 2px 8px rgba(0, 0, 0, 0.05);
	margin-top: 24px;
}

.pop-content .add-card input[type="text"] {
	width: calc(100% - 100px);
	padding: 10px;
	border: 1px solid #e2e8f0;
	border-radius: 6px;
	margin-right: 10px;
}

.pop-content .add-card button {
	padding: 10px 20px;
	border: none;
	border-radius: 6px;
	background-color: #2563eb;
	color: white;
	cursor: pointer;
	transition: background-color 0.2s ease;
}

.pop-content .add-card button:hover {
	background-color: #1d4ed8;
}


.detail-link {
  color: #00b2eb; 
  text-decoration: none; 
  cursor: pointer;
}

.detail-link:hover {
  color: #2563eb; 
  text-decoration: underline;
}


/* 왼쪽 사용자 그룹 영역 */
.user-group-section {
	background: #f8f9fa;
	border-right: 1px solid #dee2e6;
	padding: 20px;
}

.section-header {
	font-size: 16px;
	font-weight: 700;
	color: #333;
	margin-bottom: 20px;
	padding-bottom: 10px;
	border-bottom: 2px solid #dee2e6;
}
/* 오른쪽 메뉴/기능 권한 영역 */
.permission-section {
	padding: 20px;
}

.permission-group {
	background: #f8f9fa;
	border: 1px solid #dee2e6;
	border-radius: 8px;
	padding: 20px;
	margin-bottom: 20px;
}

.permission-header {
	display: flex;
	justify-content: space-between;
	align-items: center;
	margin-bottom: 20px;
}

.permission-title {
	font-size: 15px;
	font-weight: 600;
	color: #333;
}

.permission-buttons {
	display: flex;
	gap: 8px;
}

/* 레거시 버튼 - 통합 스타일로 대체됨 (하단 버튼 스타일 섹션 참조) */
.btn-primary {
	background: linear-gradient(135deg, #4a90e2 0%, #357abd 100%);
	color: white;
}
.permission-row {
	display: grid;
	grid-template-columns: 150px 1fr;
	align-items: center;
	padding: 12px 0;
	border-bottom: 1px solid #dee2e6;
}

.permission-row:last-child {
	border-bottom: none;
}

.permission-label {
	font-size: 14px;
	color: #495057;
	font-weight: 500;
}

.permission-checkboxes {
	display: flex;
	gap: 25px;
	flex-wrap: wrap;
}
/* 스크롤 영역 */
.scrollable {
	max-height: 550px;
	overflow-y: auto;
	padding-right: 10px;
}

.scrollable::-webkit-scrollbar {
	width: 8px;
}

.scrollable::-webkit-scrollbar-track {
	background: #f1f1f1;
	border-radius: 10px;
}

.scrollable::-webkit-scrollbar-thumb {
	background: #888;
	border-radius: 10px;
}

.scrollable::-webkit-scrollbar-thumb:hover {
	background: #555;
}

.overflow-h {
    overflow: hidden;
}
.h-auto {
	height: auto !important;
	min-height: calc(100vh - 250px);
}
.content-area .btn-group {
    padding: 0;
    text-align: right;
}
.permission-section .btn-group {
    padding: 15px 17px;
    text-align: right;
}


/*요금제*/
.parking-fee-list .btn-group button {
    width: 100%;
    text-align: center;
    display: block;
    color: #fff;
}
.parking-fee-list li.selected {
    background-color: #dbeafe;
    color: #1d4ed8;
    border-left: 3px solid #3b82f6;
    font-weight: 600;
}
.parking-fee-list li:hover {
    background-color: #e5edf7;
    color: #2563eb;
}
.parking-fee-list li {
    padding: 0.75rem 1.5rem;
    cursor: pointer;
    font-weight: 500;
    color: #4b5563;
    border-left: 3px solid transparent;
    transition: all 0.2s;
}
.parking-fee-list ul {
    margin-top: 30px;
}

/* 빈 상태 안내 */
.empty-state {
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    min-height: 400px;
    color: #6b7280;
    text-align: center;
    padding: 40px;
}
.empty-state-icon {
    width: 80px;
    height: 80px;
    margin-bottom: 24px;
    background: linear-gradient(135deg, #e0e7ff 0%, #c7d2fe 100%);
    border-radius: 50%;
    display: flex;
    align-items: center;
    justify-content: center;
}
.empty-state-icon svg {
    width: 40px;
    height: 40px;
    color: #6366f1;
}
.empty-state h3 {
    font-size: 20px;
    font-weight: 600;
    color: #374151;
    margin: 0 0 12px 0;
}
.empty-state p {
    font-size: 15px;
    color: #9ca3af;
    margin: 0;
    line-height: 1.6;
}

.tab-btn-area {
    margin-bottom: 1.5rem;
	display: flex;
	border-bottom: 1px solid #e5e7eb;
    --tw-border-opacity: 1;
    border-color: rgb(229 231 235 / var(--tw-border-opacity, 1));
}
.tab-btn {
    border-bottom: 2px solid transparent;
    color: #6b7280;
    transition: all 0.2s;
	    padding-left: 1rem;
    padding-right: 1rem;
    padding-top: 0.5rem;
    padding-bottom: 0.5rem;
    font-size: 0.875rem;
    line-height: 1.25rem;
	font-weight: 500;
}
.tab-btn.active {
	border-bottom: 2px solid #3b82f6;
    color: #3b82f6;
    font-weight: 600;
}
.w-700 {
    width: 700px;
}
.w-100p {
    width: 100%;
}
.w-50p {
    width: 49%;
}
.mb-10 {
	margin-bottom: 10px;
}
.note {
	font-size: 12px;
	color: #0066cc;
	margin-top: 8px;
	line-height: 1.5;
}
.tab-content {
	display: none;
}
.tab-content.active {
	display: block;
}
.weekday-btn {
	border-color:#d1d5db;
	background-color: #f3f4f6;
	border-width: 1px;
	padding-left: 1rem;
    padding-right: 1rem;
	padding-top: 0.5rem;
    padding-bottom: 0.5rem;
    font-size: 0.875rem;
    line-height: 1.25rem;
    transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1);
    transition-duration: 150ms;
	border-radius: 0.375rem;
}
.weekday-btn.active {
    background-color: #3b82f6;
    color: white;
    border-color: #3b82f6;
}
.title-wrap {
    display: flex;
    align-items: center;
    justify-content: space-between;
    align-items: baseline;
}
.title-wrap h4{
	display: flex;
	align-items: center;
	justify-content: space-between;
}
.config-box {
    border-bottom: 1px solid #f3f4f6;
	padding: 10px 0;
}
.config-box h4{
    font-size: 17px;
    font-weight: 500;
    padding: 15px 0;
}
.config-section {
	padding: 12px;
    border-radius: 5px;
    margin-top: 15px;
    background-color: #fff;
    --tw-shadow: 0 4px 6px -1px rgb(0 0 0 / 0.1), 1px 0px 11px -2px rgb(0 0 0 / 0.1);
    --tw-shadow-colored: 0 4px 6px -1px var(--tw-shadow-color), 0 2px 4px -2px var(--tw-shadow-color);
    box-shadow: var(--tw-ring-offset-shadow, 0 0 #0000), var(--tw-ring-shadow, 0 0 #0000), var(--tw-shadow);
}
.config-section h1{
    border-bottom: 1px solid #ddd;
    padding: 10px 10px 20px;
    color: #333;
	font-size: 25px;
    margin-bottom: 20px;
}
.deep-blue {
	background:#1d4ed8;
}
.deep-green {
	background:#16a34a;
}
.float-right {
    float: right;
}
.red {
	background-color:#ef4444;
}
/* X 아이콘 삭제 버튼 스타일 */
.icon-delete-btn {
	background-color: transparent;
    color: #9ca3af;
    border: none;
    border-radius: 4px;
    width: 28px;
    height: 28px;
    font-size: 1rem;
    font-weight: 400;
    cursor: pointer;
    transition: all 0.2s;
    line-height: 1;
    padding: 0;
    display: flex;
    justify-content: center;
    align-items: center;
	margin-bottom: 10px;
}
.icon-delete-btn:hover {
	background-color: #fee2e2;
	color: #b91c1c;
	border-color: #ef4444;
}


.mapping-container {
	display: flex;
	gap: 20px;
	align-items: flex-start;
	padding: 20px;
}

.section {
	flex: 1;
	border: 1px solid #ddd;
	border-radius: 4px;
	overflow: hidden;
}

.section-content {
	padding: 15px;
	min-height: 500px;
	max-height: 500px;
	overflow-y: auto;
}

.parking-item {
    padding: 0.75rem 1.5rem;
    cursor: pointer;
    font-weight: 500;
    color: #4b5563;
    border-left: 3px solid transparent;
    transition: all 0.2s;
}

.parking-item:hover {
	background-color: #e9ecef;
	border-color: #dee2e6;
}

.parking-item.selected {
    background-color: #dbeafe;
    color: #1d4ed8;
    border-left: 3px solid #3b82f6;
    font-weight: 600;
}

.parking-name {
	font-weight: 600;
}

.rate-item {
	padding: 12px;
	margin-bottom: 8px;
	background-color: #f8f9fa;
	border: 1px solid #e9ecef;
	border-radius: 4px;
	cursor: pointer;
	transition: all 0.2s;
}

.rate-item:hover {
	background-color: #e9ecef;
	border-color: #dee2e6;
}

.rate-item.selected {
	background-color: #007bff;
	color: white;
	border-color: #0056b3;
}

.rate-name {
	font-weight: 600;
	margin-bottom: 4px;
}

.rate-period {
	font-size: 13px;
	color: #6c757d;
}

.rate-item.selected .rate-period {
	color: #e3f2ff;
}

.controls {
	display: flex;
	flex-direction: column;
	justify-content: center;
	gap: 10px;
	padding-top: 230px;
}

.arrow-btn {
	background-color: #000;
	color: white;
	border: none;
	padding: 12px 20px;
	cursor: pointer;
	font-size: 18px;
	border-radius: 4px;
	transition: background-color 0.2s;
}

.arrow-btn:hover:not(:disabled) {
	background-color: #333;
}

.arrow-btn:disabled {
	background-color: #ccc;
	cursor: not-allowed;
}

.save-btn {
	margin-top: 20px;
	background-color: #000;
	color: white;
	border: none;
	padding: 12px 30px;
	font-size: 16px;
	cursor: pointer;
	border-radius: 4px;
	float: right;
	transition: background-color 0.2s;
}

.save-btn:hover {
	background-color: #333;
}

.empty-message {
	display: flex;
	flex-direction: column;
	align-items: center;
	justify-content: center;
	text-align: center;
	color: #6b7280;
	padding: 40px 20px;
	min-height: 200px;
}
.empty-message-icon {
	width: 56px;
	height: 56px;
	margin-bottom: 16px;
	background: linear-gradient(135deg, #e0e7ff 0%, #c7d2fe 100%);
	border-radius: 50%;
	display: flex;
	align-items: center;
	justify-content: center;
}
.empty-message-icon svg {
	width: 28px;
	height: 28px;
	color: #6366f1;
}
.empty-message-text {
	font-size: 15px;
	font-weight: 500;
	color: #374151;
}
.empty-message-desc {
	font-size: 13px;
	color: #9ca3af;
	margin-top: 6px;
}

.mapped-item {
	padding: 12px;
	margin-bottom: 8px;
	background-color: #e7f5ff;
	border: 1px solid #b3d9ff;
	border-radius: 4px;
	cursor: pointer;
	transition: all 0.2s;
}

.mapped-item:hover {
	background-color: #d0ebff;
	border-color: #99ccff;
}

.mapped-item.selected {
	background-color: #007bff;
	color: white;
	border-color: #0056b3;
}

.mapped-item.selected .rate-period {
	color: #e3f2ff;
}


/*승인검토*/
.content-wrapper {
	display: flex;
	gap: 30px;
}

.left-section {
	padding: 24px;
	background-color: #f9fafb;
	border-right: 1px solid #e2e8f0;
	overflow-y: auto;
}


.right-section {
	flex: 1;
	background-color: white;
	border-radius: 8px;
	padding: 30px;
	box-shadow: 0 1px 3px rgba(0,0,0,0.06);
}

.section-title {
	font-size: 18px;
	font-weight: 600;
	margin-bottom: 20px;
	color: #212529;
}

.info-card {
	background-color: white;
	border-radius: 8px;
	overflow: hidden;
	box-shadow: 0 1px 3px rgba(0,0,0,0.06);
}

.info-row {
	display: flex;
	border-bottom: 1px solid #f1f3f5;
}

.info-row:last-child {
	border-bottom: none;
}

.info-label {
	width: 110px;
	padding: 14px 16px;
	background-color: #f8f9fa;
	font-size: 13px;
	color: #495057;
	font-weight: 500;
	border-right: 1px solid #f1f3f5;
}

.info-value {
	flex: 1;
	padding: 14px 16px;
	font-size: 14px;
	color: #212529;
}

.status-badge {
	display: inline-flex;
	align-items: center;
	padding: 6px 14px;
	background-color: #4361ee;
	color: white;
	border-radius: 20px;
	font-size: 13px;
	font-weight: 600;
	margin-bottom: 25px;
}

.file-section {
	background-color: #f8f9fa;
	border-radius: 8px;
	padding: 24px;
	margin-bottom: 20px;
}

.file-header {
	display: flex;
	justify-content: space-between;
	align-items: center;
	margin-bottom: 16px;
}

.file-header label {
	font-size: 14px;
	font-weight: 600;
	color: #212529;
}

.btn-download-all {
	padding: 7px 16px;
	background-color: white;
	color: #495057;
	border: 1px solid #dee2e6;
	border-radius: 4px;
	cursor: pointer;
	font-size: 13px;
	font-weight: 500;
	transition: all 0.2s;
}

.btn-download-all:hover {
	background-color: #f8f9fa;
	border-color: #adb5bd;
}

.file-list {
	background-color: white;
	border: 1px solid #dee2e6;
	border-radius: 6px;
	overflow: hidden;
}

.file-item {
	display: flex;
	justify-content: space-between;
	align-items: center;
	padding: 14px 16px;
	border-bottom: 1px solid #f1f3f5;
}

.file-item:last-child {
	border-bottom: none;
}

.file-name {
	font-size: 14px;
	color: #212529;
}

.file-actions {
	display: flex;
	gap: 8px;
}

.btn-file {
	padding: 6px 14px;
	border: 1px solid #dee2e6;
	background-color: white;
	border-radius: 4px;
	cursor: pointer;
	font-size: 12px;
	color: #495057;
	transition: all 0.2s;
}

.btn-file:hover {
	background-color: #f8f9fa;
	border-color: #adb5bd;
}

.btn-file.btn-download {
	background-color: #212529;
	color: white;
	border-color: #212529;
}

.btn-file.btn-download:hover {
	background-color: #343a40;
}

.action-buttons {
	display: flex;
	justify-content: flex-end;
	gap: 10px;
	/*margin-top: 20px;*/
}

.btn-action {
	padding: 11px 28px;
	border: none;
	border-radius: 6px;
	cursor: pointer;
	font-size: 14px;
	font-weight: 600;
	transition: all 0.2s;
}

.btn-approve {
	background-color: #4361ee;
	color: white;
}

.btn-approve:hover {
	background-color: #3651d4;
}

.btn-reject {
	background-color: white;
	color: #495057;
	border: 1px solid #dee2e6;
}

.btn-reject:hover {
	background-color: #f8f9fa;
}

.reason-section {
	margin-top: 24px;
	padding: 24px;
	background-color: #f8f9fa;
	border-radius: 8px;
	display: none;
}

.reason-section.show {
	display: block;
}

.reason-section label {
	display: block;
	font-size: 14px;
	font-weight: 600;
	margin-bottom: 10px;
	color: #212529;
}

.reason-textarea {
	width: 100%;
	min-height: 130px;
	padding: 12px;
	border: 1px solid #dee2e6;
	border-radius: 6px;
	font-family: 'Malgun Gothic', sans-serif;
	font-size: 14px;
	resize: vertical;
	transition: border-color 0.2s;
}

.reason-textarea:focus {
	outline: none;
	border-color: #4361ee;
}

.reason-buttons {
	display: flex;
	justify-content: flex-end;
	gap: 10px;
	margin-top: 16px;
}

.btn-cancel {
	background-color: white;
	color: #495057;
	border: 1px solid #dee2e6;
}

.btn-cancel:hover {
	background-color: #f8f9fa;
}

.btn-submit-reject {
	background-color: #dc3545;
	color: white;
}

.btn-submit-reject:hover {
	background-color: #c82333;
}

.navigation {
	display: flex;
	justify-content: center;
	gap: 10px;
	margin-top: 40px;
	padding-top: 30px;
	border-top: 1px solid #e9ecef;
}

.btn-nav {
	padding: 10px 30px;
	border-radius: 6px;
	cursor: pointer;
	font-size: 14px;
	font-weight: 500;
	transition: all 0.2s;
}

.btn-prev, .btn-next {
	background-color: white;
	color: #495057;
	border: 1px solid #dee2e6;
}

.btn-prev:hover, .btn-next:hover {
	background-color: #f8f9fa;
}

.help-text {
	font-size: 12px;
	color: #6c757d;
	margin-top: 6px;
}

.parking-fee-rules-slot {
	display: none;
}
.parking-fee-rules-slot.active {
	display: block;
}

/* 개별 파일 아이템 */
.input-btn-wrap.popUpdateFileDiv {
    display: flex;
    align-items: center;
    justify-content: space-between;
    padding: 3px 3px 3px 12px;
    margin: 3px 0;
    background: #f8f9fa;
    border: 1px solid #e0e0e0;
    border-radius: 6px;
    transition: all 0.2s ease;
}

.input-btn-wrap.popUpdateFileDiv:hover {
    background: #f0f2f5;
    border-color: #d0d0d0;
}

.orgFileName {
    flex: 1;
    overflow: hidden;
}

.orgFileName .detail-link {
    display: inline-flex;
    align-items: center;
    color: #2c5282;
    text-decoration: none;
    font-size: 14px;
    font-weight: 500;
    transition: color 0.2s ease;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
    max-width: 100%;
}

.orgFileName .detail-link:hover {
    color: #1a365d;
    text-decoration: underline;
}

.btnDeleteFile {
    padding: 6px 14px;
    font-size: 13px;
    border-radius: 4px;
    cursor: pointer;
    transition: all 0.2s ease;
    white-space: nowrap;
    margin-left: 12px;
}

/* FAQ 섹션 */
.faq-section {
    background: white;
    border-radius: 12px;
    padding: 32px;
    margin-bottom: 32px;
    box-shadow: 0 2px 8px rgba(0,0,0,0.08);
    margin-top: 10px;
}

.section-header {
    display: flex;
    align-items: center;
    gap: 12px;
    margin-bottom: 24px;
    padding-bottom: 16px;
    border-bottom: 2px solid #f3f4f6;
}

.section-icon {
    width: 32px;
    height: 32px;
    background: rgba(0, 188, 212, 0.1);
    border-radius: 8px;
    display: flex;
    align-items: center;
    justify-content: center;
}

.section-icon svg {
    width: 20px;
    height: 20px;
    fill: #00b2eb;
}

.section-title {
    font-size: 20px;
    font-weight: 600;
    color: #1a1a1a;
}
/* FAQ 아이템 */
.faq-list {
    display: flex;
    flex-direction: column;
    gap: 12px;
}

.faq-item {
    border: 1px solid #e5e7eb;
    border-radius: 8px;
    overflow: hidden;
    transition: all 0.3s ease;
}

.faq-item.active {
    border-color: #00b2eb;
    box-shadow: 0 2px 8px rgba(0, 188, 212, 0.1);
}

.faq-question {
    padding: 20px;
    background: white;
    cursor: pointer;
    display: flex;
    justify-content: space-between;
    align-items: center;
    transition: all 0.3s ease;
}

.faq-question:hover {
    background: #f9fafb;
}

.faq-item.active .faq-question {
    background: #f9fafb;
}

.question-text {
    display: flex;
    align-items: center;
    gap: 12px;
    flex: 1;
}

.question-badge {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 24px;
    height: 24px;
    background: #00b2eb;
    color: white;
    border-radius: 4px;
    font-size: 14px;
    font-weight: 600;
    flex-shrink: 0;
}

.question-content {
    font-size: 15px;
    font-weight: 500;
    color: #1a1a1a;
}

.question-icon {
    width: 20px;
    height: 20px;
    fill: #999;
    transition: transform 0.3s ease;
    flex-shrink: 0;
}

.faq-item.active .question-icon {
    transform: rotate(180deg);
}

.faq-answer {
    max-height: 0;
    overflow: hidden;
    transition: max-height 0.3s ease;
}

.faq-item.active .faq-answer {
    max-height: 500px;
}

.answer-content {
    padding: 20px;
    background: #f9fafb;
    border-top: 1px solid #e5e7eb;
    font-size: 14px;
    line-height: 1.7;
    color: #666;
}

.faq-category-badge {
    display: inline-block;
    padding: 4px 8px;
    background: rgba(0, 188, 212, 0.1);
    color: #00b2eb;
    border-radius: 4px;
    font-size: 11px;
    font-weight: 500;
    margin-right: 8px;
}

/* 매뉴얼 섹션 */
.manual-section {
    background: white;
    border-radius: 12px;
    padding: 32px;
    box-shadow: 0 2px 8px rgba(0,0,0,0.08);
}

.manual-list {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(300px, 1fr));
    gap: 16px;
}

.manual-item {
    border: 1px solid #e5e7eb;
    border-radius: 8px;
    padding: 20px;
    transition: all 0.3s ease;
    cursor: pointer;
}

.manual-item:hover {
    border-color: #00b2eb;
    box-shadow: 0 4px 12px rgba(0, 188, 212, 0.1);
    transform: translateY(-2px);
}

.manual-header {
    display: flex;
    align-items: flex-start;
    gap: 12px;
    margin-bottom: 12px;
}

.manual-icon {
    width: 48px;
    height: 48px;
    background: rgba(0, 188, 212, 0.1);
    border-radius: 8px;
    display: flex;
    align-items: center;
    justify-content: center;
    flex-shrink: 0;
}

.manual-icon svg {
    width: 24px;
    height: 24px;
    fill: #00b2eb;
}

.manual-info {
    flex: 1;
}

.manual-title {
    font-size: 16px;
    font-weight: 600;
    color: #1a1a1a;
    margin-bottom: 4px;
}

.manual-desc {
    font-size: 13px;
    color: #999;
}

.manual-meta {
    display: flex;
    justify-content: space-between;
    align-items: center;
    font-size: 12px;
    color: #999;
}

.manual-size {
    display: flex;
    align-items: center;
    gap: 4px;
}

.manual-size svg {
    width: 14px;
    height: 14px;
    fill: #999;
}

.download-btn {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    padding: 6px 12px;
    background: #00b2eb;
    color: white;
    border: none;
    border-radius: 6px;
    font-size: 12px;
    font-weight: 500;
    cursor: pointer;
    transition: all 0.3s ease;
}

.download-btn:hover {
    background: #00a5b8;
    transform: translateY(-1px);
}

.download-btn svg {
    width: 14px;
    height: 14px;
    fill: white;
}

/* No Results */
.no-results {
    text-align: center;
    padding: 60px 20px;
    color: #999;
}

.no-results svg {
    width: 64px;
    height: 64px;
    fill: #e5e7eb;
    margin-bottom: 16px;
}

.no-results-text {
    font-size: 16px;
    color: #666;
}

.btn-discount {
    width: 108px;
    padding: 8px 2px;
    border: 1px solid #ddd;
    border-radius: 4px;
    background: white;
    cursor: pointer;
    text-align: center;
    display: inline-block;
}

.btn-discount.active {
    background: #007bff;
    color: white;
    border-color: #007bff;
}

.dashboard-wrap {
    padding: 20px;
}

/* 중간 섹션 */
.middle-section {
    display: grid;
    grid-template-columns: 2fr 1fr;
    gap: 20px;
    margin-bottom: 24px;
}

.chart-card, .status-card {
    background: #fff;
    border-radius: 12px;
    padding: 24px;
    box-shadow: 0 2px 8px rgba(0,0,0,0.08);
}

.card-header {
    display: flex;
    justify-content: space-between;
    align-items: center;
    margin-bottom: 20px;
}

.card-header h3 {
    font-size: 16px;
    font-weight: 600;
    color: #1a1a1a;
    margin: 0;
}

.card-header .period {
    font-size: 12px;
    color: #999;
}

/* 차트 영역 */
.chart-area {
    height: 240px;
    display: flex;
    align-items: flex-end;
    gap: 8px;
    padding: 20px 0;
}

.chart-bar-wrap {
    flex: 1;
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 8px;
}

.chart-bar {
    width: 100%;
    max-width: 40px;
    border-radius: 4px 4px 0 0;
    transition: all 0.3s ease;
}

.chart-bar:hover {
    opacity: 0.8;
}

.chart-bar.entry { background: #306eff; }
.chart-bar.exit { background: #10b981; }

.chart-label {
    font-size: 11px;
    color: #999;
}

.chart-legend {
    display: flex;
    justify-content: center;
    gap: 24px;
    margin-top: 16px;
}

.legend-item {
    display: flex;
    align-items: center;
    gap: 6px;
    font-size: 12px;
    color: #666;
}

.legend-dot {
    width: 10px;
    height: 10px;
    border-radius: 2px;
}

.legend-dot.entry { background: #306eff; }
.legend-dot.exit { background: #10b981; }

/* 주차장 현황 */
.parking-status-list {
    display: flex;
    flex-direction: column;
    gap: 12px;
}

.parking-item {
    display: flex;
    align-items: center;
    gap: 12px;
}

.parking-bar-wrap {
    flex: 1;
    height: 24px;
    background: #f3f4f6;
    border-radius: 4px;
    overflow: hidden;
    position: relative;
}

.parking-bar {
    height: 100%;
    border-radius: 4px;
    transition: width 0.5s ease;
}

.parking-bar.high { background: #ef4444; }
.parking-bar.medium { background: #f59e0b; }
.parking-bar.low { background: #10b981; }

.parking-percent {
    width: 50px;
    text-align: right;
    font-size: 13px;
    font-weight: 600;
}

.parking-percent.high { color: #ef4444; }
.parking-percent.medium { color: #f59e0b; }
.parking-percent.low { color: #10b981; }

/* 하단 섹션 */
.bottom-section {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 20px;
    margin-bottom: 24px;
}

.table-card {
    background: #fff;
    border-radius: 12px;
    padding: 24px;
    box-shadow: 0 2px 8px rgba(0,0,0,0.08);
}

.mini-table {
    width: 100%;
    border-collapse: collapse;
}

.mini-table th,
.mini-table td {
    padding: 12px 8px;
    text-align: left;
    font-size: 13px;
    border-bottom: 1px solid #f3f4f6;
}

.mini-table th {
    color: #666;
    font-weight: 500;
    background: #f9fafb;
}

.mini-table td {
    color: #333;
}

.mini-table tr:last-child td {
    border-bottom: none;
}

.status-badge {
    display: inline-block;
    padding: 4px 8px;
    border-radius: 4px;
    font-size: 11px;
    font-weight: 500;
}

.status-badge.paid {
    background: rgba(16, 185, 129, 0.1);
    color: #10b981;
}

.status-badge.unpaid {
    background: rgba(239, 68, 68, 0.1);
    color: #ef4444;
}

.amount {
    font-weight: 600;
    color: #306eff;
}

/* 실시간 알림 */
.alert-list {
    display: flex;
    flex-direction: column;
    gap: 8px;
}

.alert-item {
    display: flex;
    align-items: center;
    gap: 12px;
    padding: 12px;
    background: #f9fafb;
    border-radius: 8px;
    font-size: 13px;
}

.alert-icon {
    width: 32px;
    height: 32px;
    border-radius: 8px;
    display: flex;
    align-items: center;
    justify-content: center;
}

.alert-icon.entry {
    background: rgba(48, 110, 255, 0.1);
}

.alert-icon.entry svg {
    fill: #306eff;
}

.alert-icon.exit {
    background: rgba(16, 185, 129, 0.1);
}

.alert-icon.exit svg {
    fill: #10b981;
}

.alert-icon.warning {
    background: rgba(245, 158, 11, 0.1);
}

.alert-icon.warning svg {
    fill: #f59e0b;
}

.alert-content {
    flex: 1;
}

.alert-content .msg {
    color: #333;
    margin-bottom: 2px;
}

.alert-content .time {
    font-size: 11px;
    color: #999;
}

.lpn-highlight {
    font-weight: 600;
    color: #306eff;
}

/* 바로가기 메뉴 섹션 */
.shortcuts-section {
    background: #fff;
    border-radius: 12px;
    padding: 24px;
    box-shadow: 0 2px 8px rgba(0,0,0,0.08);
}

.shortcuts-header {
    display: flex;
    align-items: center;
    justify-content: space-between;
    margin-bottom: 20px;
}

.shortcuts-header-left {
    display: flex;
    align-items: center;
    gap: 8px;
}

.shortcuts-header h3 {
    font-size: 16px;
    font-weight: 600;
    color: #1a1a1a;
    margin: 0;
}

.shortcuts-header .icon svg {
    width: 20px;
    height: 20px;
    fill: #666;
}

.add-shortcut-btn {
    display: flex;
    align-items: center;
    gap: 6px;
    padding: 8px 16px;
    background: #306eff;
    color: white;
    border: none;
    border-radius: 8px;
    font-size: 13px;
    font-weight: 500;
    cursor: pointer;
    transition: all 0.3s ease;
}

.add-shortcut-btn:hover {
    background: #2557d6;
    transform: translateY(-1px);
    box-shadow: 0 4px 12px rgba(48, 110, 255, 0.3);
}

.add-shortcut-btn svg {
    width: 16px;
    height: 16px;
    fill: white;
}

.shortcuts-grid {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(160px, 1fr));
    gap: 16px;
    min-height: 100px;
}

.shortcuts-empty {
    grid-column: 1 / -1;
    text-align: center;
    padding: 40px;
    color: #999;
    font-size: 14px;
}

.shortcut-btn {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 12px;
    padding: 24px 16px;
    background: #f9fafb;
    border: 2px solid transparent;
    border-radius: 12px;
    cursor: pointer;
    transition: all 0.3s ease;
    text-decoration: none;
    color: inherit;
    position: relative;
}

.shortcut-btn:hover {
    background: #fff;
    border-color: #e5e7eb;
    transform: translateY(-2px);
    box-shadow: 0 4px 12px rgba(0, 0, 0, 0.08);
}

.shortcut-btn:hover .delete-btn {
    opacity: 1;
}

.delete-btn {
    position: absolute;
    top: 8px;
    right: 8px;
    width: 24px;
    height: 24px;
    background: #ef4444;
    color: white;
    border: none;
    border-radius: 50%;
    font-size: 12px;
    cursor: pointer;
    opacity: 0;
    transition: opacity 0.3s ease;
    display: flex;
    align-items: center;
    justify-content: center;
}

.delete-btn:hover {
    background: #dc2626;
}

.shortcut-icon {
    width: 56px;
    height: 56px;
    border-radius: 12px;
    display: flex;
    align-items: center;
    justify-content: center;
    transition: transform 0.3s ease;
}

.shortcut-btn:hover .shortcut-icon {
    transform: scale(1.05);
}

.shortcut-icon svg {
    width: 28px;
    height: 28px;
}

.shortcut-icon.blue {
    background: rgba(48, 110, 255, 0.1);
}
.shortcut-icon.blue svg {
    fill: #306eff;
}

.shortcut-icon.green {
    background: rgba(16, 185, 129, 0.1);
}
.shortcut-icon.green svg {
    fill: #10b981;
}

.shortcut-icon.orange {
    background: rgba(245, 158, 11, 0.1);
}
.shortcut-icon.orange svg {
    fill: #f59e0b;
}

.shortcut-icon.purple {
    background: rgba(139, 92, 246, 0.1);
}
.shortcut-icon.purple svg {
    fill: #8b5cf6;
}

.shortcut-icon.pink {
    background: rgba(236, 72, 153, 0.1);
}
.shortcut-icon.pink svg {
    fill: #ec4899;
}

.shortcut-icon.cyan {
    background: rgba(6, 182, 212, 0.1);
}
.shortcut-icon.cyan svg {
    fill: #06b6d4;
}

.shortcut-icon.red {
    background: rgba(239, 68, 68, 0.1);
}
.shortcut-icon.red svg {
    fill: #ef4444;
}

.shortcut-icon.indigo {
    background: rgba(99, 102, 241, 0.1);
}
.shortcut-icon.indigo svg {
    fill: #6366f1;
}

.shortcut-label {
    font-size: 14px;
    font-weight: 500;
    color: #333;
    text-align: center;
}

.shortcut-desc {
    font-size: 11px;
    color: #999;
    text-align: center;
    margin-top: -4px;
}

/* 모달 */
.modal-overlay {
    display: none;
    position: fixed;
    top: 0;
    left: 0;
    right: 0;
    bottom: 0;
    background: rgba(0, 0, 0, 0.5);
    z-index: 1000;
    align-items: center;
    justify-content: center;
}

.modal-overlay.active {
    display: flex;
}

.modal-content {
    background: white;
    border-radius: 16px;
    width: 90%;
    max-width: 600px;
    max-height: 80vh;
    overflow: auto;
    box-shadow: 0 20px 60px rgba(0, 0, 0, 0.3);
    animation: modalSlideUp 0.3s ease;
}

@keyframes modalSlideUp {
    from {
        opacity: 0;
        transform: translateY(30px);
    }
    to {
        opacity: 1;
        transform: translateY(0);
    }
}

.modal-header {
    padding: 24px;
    border-bottom: 1px solid #f3f4f6;
    display: flex;
    justify-content: space-between;
    align-items: center;
}

.modal-header h3 {
    font-size: 18px;
    font-weight: 600;
    color: #1a1a1a;
    margin: 0;
}

.modal-close {
    width: 32px;
    height: 32px;
    border: none;
    background: #f3f4f6;
    border-radius: 8px;
    cursor: pointer;
    font-size: 18px;
    color: #666;
    transition: all 0.3s ease;
}

.modal-close:hover {
    background: #e5e7eb;
}

.modal-body {
    padding: 24px;
}

.menu-list {
    display: grid;
    gap: 12px;
}

.menu-go-item {
    display: flex;
    align-items: center;
    gap: 12px;
    padding: 16px;
    background: #f9fafb;
    border: 2px solid transparent;
    border-radius: 12px;
    cursor: pointer;
    transition: all 0.3s ease;
}

.menu-go-item:hover {
    background: #fff;
    border-color: #e5e7eb;
    transform: translateX(4px);
}

.menu-go-item.disabled {
    opacity: 0.5;
    cursor: not-allowed;
}

.menu-go-item.disabled:hover {
    transform: none;
    border-color: transparent;
}

.menu-go-item-icon {
    width: 48px;
    height: 48px;
    border-radius: 10px;
    display: flex;
    align-items: center;
    justify-content: center;
}

.menu-go-item-icon svg {
    width: 24px;
    height: 24px;
}

.menu-go-item-content {
    flex: 1;
}

.menu-go-item-title {
    font-size: 14px;
    font-weight: 500;
    color: #333;
    margin-bottom: 2px;
}

.menu-go-item-desc {
    font-size: 12px;
    color: #999;
}

.menu-go-item-badge {
    padding: 4px 8px;
    background: rgba(16, 185, 129, 0.1);
    color: #10b981;
    border-radius: 4px;
    font-size: 11px;
    font-weight: 500;
}

/* 입출차 상세 정보 - 섹션 제목 */
.section-title-main {
    font-size: 16px;
    font-weight: 600;
    margin-bottom: 15px;
    padding-bottom: 10px;
    border-bottom: 2px solid #333;
}

/* 입출차 상세 정보 - 컨테이너 */
.detail-container {
    display: flex;
    gap: 30px;
    margin-bottom: 30px;
}

/* 입출차 상세 정보 - 정보 영역 */
.detail-info {
    flex: 1;
}

/* 입출차 상세 정보 - 테이블 */
.detail-table {
    width: 100%;
    border-collapse: collapse;
}

.detail-row {
    border-bottom: 1px solid #f0f0f0;
}

.detail-row-last {
    /* 마지막 행은 border 없음 */
}

.detail-label {
    padding: 12px 0;
    width: 120px;
    font-weight: 500;
    color: #555;
}

.detail-value {
    padding: 12px 0;
}

/* 입출차 상세 정보 - 버튼 */
.btn-inline {
    margin-left: 10px;
    padding: 6px 16px;
}

/* 입출차 상세 정보 - 서브 텍스트 */
.detail-sub {
    margin-left: 10px;
    color: #999;
    font-size: 13px;
}

/* 입출차 상세 정보 - 강조 텍스트 */
.detail-highlight {
    margin-left: 10px;
    color: #e74c3c;
    font-weight: bold;
}

.text-highlight {
    color: #e74c3c;
    font-weight: bold;
}

/* 입출차 상세 정보 - 사진 영역 */
.detail-photos {
    width: 520px;
}

.photos-title {
    font-size: 14px;
    font-weight: 600;
    margin-bottom: 12px;
    color: #333;
}

.photos-grid {
    display: grid;
    grid-template-columns: repeat(2, 1fr);
    gap: 12px;
}

.photo-box {
    aspect-ratio: 4/3;
    background: #f5f5f5;
    border: 1px solid #ddd;
    border-radius: 4px;
    display: flex;
    align-items: center;
    justify-content: center;
    position: relative;
    overflow: hidden;
}

.photo-box img {
    width: 100%;
    height: 100%;
    object-fit: cover;
}

.photo-box .photo-label {
    position: absolute;
    bottom: 0;
    left: 0;
    right: 0;
    background: rgba(0, 0, 0, 0.6);
    color: #fff;
    font-size: 11px;
    text-align: center;
    padding: 4px;
}

.photo-box:not(:has(img)) .photo-label {
    position: static;
    background: transparent;
    color: #999;
}

/* ========================================
   입출차/미납 상세 팝업 공통 스타일
   ======================================== */

/* 상세 바디 스타일 */
.pop-body.entry-exit-detail-body {
    padding: 0;
    max-height: 70vh;
    overflow-y: auto;
}

/* 섹션 스타일 */
.entry-exit-detail-body .detail-section {
    background: #ffffff;
    border-bottom: 1px solid #e1e8ed;
    padding: 16px 24px;
}

.entry-exit-detail-body .detail-section:last-child {
    border-bottom: none;
}

.entry-exit-detail-body .detail-section-header {
    display: flex;
    justify-content: space-between;
    align-items: center;
    margin-bottom: 16px;
    padding-bottom: 10px;
    border-bottom: 2px solid #4a90e2;
}

.entry-exit-detail-body .detail-section-header h4 {
    margin: 0;
    font-size: 14px;
    font-weight: 600;
    color: #2c3e50;
    display: flex;
    align-items: center;
    gap: 8px;
}

.entry-exit-detail-body .detail-section-header h4::before {
    content: '';
    display: inline-block;
    width: 4px;
    height: 16px;
    background: #4a90e2;
    border-radius: 2px;
}

/* 상태 배지 */
.entry-exit-detail-body .detail-status-badge {
    display: inline-block;
    padding: 4px 12px;
    border-radius: 20px;
    font-size: 12px;
    font-weight: 600;
}

/* 기본 정보 + 사진 컨테이너 (2열 레이아웃) */
.entry-exit-detail-body .detail-container-row {
    display: flex;
    gap: 24px;
}

/* 왼쪽: 정보 영역 */
.entry-exit-detail-body .detail-info-area {
    flex: 1;
    min-width: 0;
}

/* 오른쪽: 사진 영역 */
.entry-exit-detail-body .detail-photo-area {
    width: 300px;
    flex-shrink: 0;
}

.entry-exit-detail-body .photo-area-title {
    font-size: 13px;
    font-weight: 600;
    color: #2c3e50;
    margin: 0 0 12px 0;
    padding-bottom: 8px;
    border-bottom: 1px solid #e1e8ed;
}

/* 2x2 사진 그리드 */
.entry-exit-detail-body .photo-grid-2x2 {
    display: grid;
    grid-template-columns: repeat(2, 1fr);
    grid-template-rows: repeat(2, 1fr);
    gap: 10px;
}

/* 2x1 사진 그리드 */
.entry-exit-detail-body .photo-grid-2x1 {
    display: grid;
    grid-template-columns: repeat(2, 1fr);
    gap: 10px;
}

/* 그리드 레이아웃 */
.entry-exit-detail-body .detail-grid {
    display: flex;
    flex-direction: column;
    gap: 12px;
}

.entry-exit-detail-body .detail-row {
    display: grid;
    grid-template-columns: repeat(2, 1fr);
    gap: 20px;
}

.entry-exit-detail-body .detail-row.full {
    grid-template-columns: 1fr;
}

/* 상세 아이템 */
.entry-exit-detail-body .detail-item {
    display: flex;
    align-items: center;
    gap: 12px;
    padding: 10px 14px;
    background: #f8f9fa;
    border-radius: 8px;
    border: 1px solid #f0f0f0;
}

.entry-exit-detail-body .detail-item.full {
    width: 100%;
}

.entry-exit-detail-body .detail-item.highlight {
    background: rgba(255, 71, 87, 0.08);
    border-color: rgba(255, 71, 87, 0.2);
}

.entry-exit-detail-body .detail-label {
    flex-shrink: 0;
    width: 80px;
    font-size: 12px;
    font-weight: 500;
    color: #7f8c8d;
}

.entry-exit-detail-body .detail-value {
    flex: 1;
    font-size: 14px;
    font-weight: 500;
    color: #2c3e50;
}

.entry-exit-detail-body .detail-value.lpn-value {
    font-size: 16px;
    font-weight: 700;
    color: #4a90e2;
    font-family: 'Orbitron', 'Noto Sans KR', sans-serif;
    letter-spacing: 1px;
}

.entry-exit-detail-body .detail-value.amount {
    font-family: 'Orbitron', monospace;
    font-weight: 600;
    text-align: right;
}

.entry-exit-detail-body .detail-value.amount::after {
    content: '원';
    font-size: 12px;
    margin-left: 2px;
    font-weight: 400;
    font-family: 'Noto Sans KR', sans-serif;
}

.entry-exit-detail-body .detail-value.amount.discount {
    color: #52c41a;
}

.entry-exit-detail-body .detail-value.amount.total {
    color: #ff4757;
    font-size: 18px;
}

.entry-exit-detail-body .detail-sub-text {
    margin-left: 8px;
    font-size: 12px;
    color: #999;
}

.entry-exit-detail-body .detail-sub-text.highlight {
    color: #e74c3c;
    font-weight: 600;
}

/* 액션 바 */
.entry-exit-detail-body .detail-action-bar {
    display: flex;
    justify-content: space-between;
    align-items: center;
    margin-top: 16px;
    padding-top: 16px;
    border-top: 1px dashed #e1e8ed;
}

.entry-exit-detail-body .detail-action-bar .action-left,
.entry-exit-detail-body .detail-action-bar .action-right {
    display: flex;
    gap: 8px;
    align-items: center;
}

.entry-exit-detail-body .detail-action-bar .input-sm {
    width: 150px;
    padding: 6px 10px;
    font-size: 13px;
}

.entry-exit-detail-body .detail-action-bar .btn-sm {
    padding: 6px 12px;
    font-size: 12px;
}

/* 테이블 래퍼 */
.entry-exit-detail-body .detail-table-wrapper {
    max-height: 200px;
    overflow-y: auto;
    border: 1px solid #e1e8ed;
    border-radius: 8px;
}

.entry-exit-detail-body .detail-data-table {
    width: 100%;
    border-collapse: collapse;
    font-size: 13px;
}

.entry-exit-detail-body .detail-data-table thead {
    position: sticky;
    top: 0;
    z-index: 1;
}

.entry-exit-detail-body .detail-data-table th {
    padding: 10px 12px;
    background: #f8f9fa;
    border-bottom: 1px solid #e1e8ed;
    font-weight: 600;
    color: #7f8c8d;
    text-align: left;
    white-space: nowrap;
}

.entry-exit-detail-body .detail-data-table td {
    padding: 10px 12px;
    border-bottom: 1px solid #f0f0f0;
    color: #2c3e50;
}

.entry-exit-detail-body .detail-data-table tbody tr:hover {
    background: #f8f9fa;
}

.entry-exit-detail-body .detail-data-table tbody tr:last-child td {
    border-bottom: none;
}

.entry-exit-detail-body .detail-data-table .text-right {
    text-align: right;
}

.entry-exit-detail-body .detail-data-table .detail-link {
    color: #4a90e2;
    text-decoration: none;
}

.entry-exit-detail-body .detail-data-table .detail-link:hover {
    text-decoration: underline;
}

/* 푸터 스타일 */
.pop-footer.entry-exit-detail-footer {
    display: flex;
    justify-content: space-between;
    align-items: center;
    padding: 16px 24px;
    background: #f8f9fa;
    border-top: 1px solid #e1e8ed;
}

.entry-exit-detail-footer .footer-left,
.entry-exit-detail-footer .footer-right {
    display: flex;
    gap: 8px;
    align-items: center;
}

/* 입출차 상세 푸터 버튼 - 통합 스타일 적용 */
.pop-footer.entry-exit-detail-footer .btn {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    padding: 10px 22px;
    font-size: 14px;
    font-weight: 600;
    border-radius: 8px;
    cursor: pointer;
    transition: all 0.2s ease;
    border: none;
    box-shadow: 0 2px 4px rgba(0, 0, 0, 0.08);
}

.pop-footer.entry-exit-detail-footer .btn:hover {
    transform: translateY(-1px);
    box-shadow: 0 4px 8px rgba(0, 0, 0, 0.12);
}

.pop-footer.entry-exit-detail-footer .btn .btn-icon {
    width: 16px;
    height: 16px;
    flex-shrink: 0;
}

/* 반응형 */
@media (max-width: 992px) {
    .entry-exit-detail-body .detail-container-row {
        flex-direction: column;
    }

    .entry-exit-detail-body .detail-photo-area {
        width: 100%;
    }

    .entry-exit-detail-body .photo-grid-2x2 {
        grid-template-columns: repeat(4, 1fr);
        grid-template-rows: 1fr;
    }

    .entry-exit-detail-body .detail-action-bar {
        flex-direction: column;
        gap: 12px;
    }

    .entry-exit-detail-body .detail-action-bar .action-left,
    .entry-exit-detail-body .detail-action-bar .action-right {
        width: 100%;
        justify-content: center;
    }
}

@media (max-width: 768px) {
    .entry-exit-detail-body .detail-row {
        grid-template-columns: 1fr;
    }

    .entry-exit-detail-body .photo-grid-2x2 {
        grid-template-columns: repeat(2, 1fr);
        grid-template-rows: repeat(2, 1fr);
    }

    .pop-footer.entry-exit-detail-footer {
        flex-direction: column;
        gap: 12px;
    }

    .entry-exit-detail-footer .footer-left,
    .entry-exit-detail-footer .footer-right {
        width: 100%;
        justify-content: center;
        flex-wrap: wrap;
    }
}

/* 반응형 */
@media (max-width: 1400px) {
    .summary-cards {
        grid-template-columns: repeat(3, 1fr);
    }
}

@media (max-width: 1200px) {
    .summary-cards {
        grid-template-columns: repeat(2, 1fr);
    }

    .middle-section {
        grid-template-columns: 1fr;
    }

    .bottom-section {
        grid-template-columns: 1fr;
    }
}

@media (max-width: 768px) {
    .summary-cards {
        grid-template-columns: 1fr;
    }

    .shortcuts-grid {
        grid-template-columns: repeat(2, 1fr);
    }
}/**
 * ITNES Project
 * Copyright 2019 itnes.co.kr
 *
 * packageName    : static.css
 * fileName       : common-page.css
 * date           : 2026-02-13
 * description    : 공통 페이지 스타일 (대시보드 참고)
 */

/* ========================================
   CSS Variables
   ======================================== */
:root {
    --page-bg-primary: #f5f7fa;
    --page-bg-secondary: #ffffff;
    --page-bg-tertiary: #f8f9fa;
    --page-text-primary: #2c3e50;
    --page-text-secondary: #7f8c8d;
    --page-text-muted: #95a5a6;
    --page-border-color: #e1e8ed;
    --page-accent-blue: #4a90e2;
    --page-accent-green: #52c41a;
    --page-accent-orange: #ff8c42;
    --page-accent-red: #ff4757;
    --page-accent-purple: #9c27b0;
    --page-accent-teal: #009688;
    --page-shadow-sm: 0 2px 8px rgba(0, 0, 0, 0.06);
    --page-shadow-md: 0 4px 12px rgba(0, 0, 0, 0.1);
    --page-transition-fast: 0.2s ease;
}

/* ========================================
   페이지 컨테이너
   ======================================== */
.container {
    background: var(--page-bg-primary);
    min-height: calc(100vh - 120px);
    padding: 20px;
}

/* ========================================
   검색 영역
   ======================================== */
.search-area {
    background: var(--page-bg-secondary);
    border: 1px solid var(--page-border-color);
    border-radius: 12px;
    padding: 20px;
    padding-bottom: 0;
    margin-bottom: 0;
    box-shadow: var(--page-shadow-sm);
}

.search-header {
    display: flex;
    justify-content: space-between;
    align-items: center;
    margin-bottom: 16px;
    padding-bottom: 16px;
    border-bottom: 1px solid var(--page-border-color);
}

.page-tit h4 {
    margin: 0;
    font-size: 18px;
    font-weight: 600;
    color: var(--page-text-primary);
}

.breadcrumb {
    display: flex;
    align-items: center;
    gap: 8px;
    margin: 0;
    padding: 0;
    list-style: none;
    font-size: 13px;
}

.breadcrumb-item a {
    color: var(--page-text-secondary);
    text-decoration: none;
}

.breadcrumb-item.bold700 a {
    color: var(--page-text-primary);
    font-weight: 600;
}

/* 필터 영역 */
.search-content {
    margin-bottom: 16px;
}

.filter {
    display: flex;
    flex-wrap: wrap;
    gap: 12px;
    align-items: flex-end;
}

.filter-item {
    display: flex;
    flex-direction: column;
    gap: 6px;
}

/* 날짜 범위 (date-range) */
.filter-item .date-range,
.date-range {
    display: flex;
    align-items: center;
    gap: 8px;
    flex-wrap: nowrap;
}

.date-range input,
.date-range .form-box {
    min-width: 130px;
    width: auto;
    flex: 0 1 auto;
}

.date-range span {
    color: var(--page-text-secondary);
    font-size: 13px;
    flex-shrink: 0;
}

.filter-label {
    font-size: 12px;
    font-weight: 500;
    color: var(--page-text-secondary);
}

.form-box {
    padding: 8px 12px;
    border: 1px solid var(--page-border-color);
    border-radius: 6px;
    font-size: 13px;
    color: var(--page-text-primary);
    background: var(--page-bg-secondary);
    min-width: 120px;
    transition: border-color var(--page-transition-fast), box-shadow var(--page-transition-fast);
}

/* Select box 화살표 */
select.form-box {
    appearance: none;
    -webkit-appearance: none;
    -moz-appearance: none;
    background-image: url(../images/select-arrow.png);
    background-repeat: no-repeat;
    background-position: right 10px center;
    padding-right: 30px;
    cursor: pointer;
}

.form-box:focus {
    outline: none;
    border-color: var(--page-accent-blue);
    box-shadow: 0 0 0 3px rgba(74, 144, 226, 0.1);
}

.search-box {
    position: relative;
}

.search-box input {
    min-width: 200px;
}

/* ========================================
   버튼 스타일 - 단순화 버전
   ======================================== */

/* 기본 버튼 */
.btn {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    padding: 8px 16px;
    border: none;
    border-radius: 6px;
    font-size: 13px;
    font-weight: 500;
    cursor: pointer;
    transition: opacity 0.15s, background-color 0.15s;
    white-space: nowrap;
    text-decoration: none;
    color: #fff;
    background: #607d8b;
}

.btn:hover {
    opacity: 0.85;
}

.btn:active {
    opacity: 0.75;
}

.btn:disabled {
    opacity: 0.5;
    cursor: not-allowed;
}

/* 작은 버튼 */
.btn.sm {
    padding: 5px 10px;
    font-size: 12px;
    border-radius: 4px;
}

/* ========================================
   색상별 버튼 (5가지)
   ======================================== */

/* 파란색 - 주요 액션 (검색, 등록, 저장) */
.btn.blue {
    background: #4a90e2;
}
.btn.blue:hover {
    background: #357abd;
}

/* 녹색 - 엑셀, 성공 */
.btn.green {
    background: #4caf50;
}
.btn.green:hover {
    background: #388e3c;
}

/* 회색 - 취소, 닫기 */
.btn.gray {
    background: #78909c;
}
.btn.gray:hover {
    background: #607d8b;
}

/* 빨간색 - 삭제, 위험 */
.btn.red {
    background: #f44336;
}
.btn.red:hover {
    background: #d32f2f;
}

/* 주황색 - 수정 */
.btn.orange {
    background: #ff9800;
}
.btn.orange:hover {
    background: #f57c00;
}

/* ========================================
   버튼 그룹
   ======================================== */

.btn-group {
    display: flex;
    gap: 8px;
    align-items: center;
    justify-content: flex-end;
}

/* ========================================
   X 닫기 버튼 (팝업용)
   ======================================== */

.btn-close-x {
    position: absolute;
    top: 12px;
    right: 12px;
    width: 28px;
    height: 28px;
    padding: 0;
    border: none;
    background: transparent;
    font-size: 20px;
    color: #999;
    cursor: pointer;
    border-radius: 4px;
    display: flex;
    align-items: center;
    justify-content: center;
}

.btn-close-x:hover {
    background: rgba(0, 0, 0, 0.05);
    color: #333;
}

/* ========================================
   레거시 호환 (기존 클래스 지원)
   ======================================== */

/* btn-primary, btn-secondary 호환 */
.btn-primary { background: #4a90e2; color: #fff; }
.btn-primary:hover { background: #357abd; }
.btn-secondary { background: #78909c; color: #fff; }
.btn-secondary:hover { background: #607d8b; }

/* btn-sm 호환 */
.btn-sm, .btn.btn-sm { padding: 5px 10px; font-size: 12px; border-radius: 4px; }

/* btn-view 호환 */
.btn-view { background: #4a90e2; color: #fff; }
.btn-view:hover { background: #357abd; }

/* btn-period 기간 선택 버튼 */
.btn-period {
    background: #f5f5f5;
    color: #666;
    border: 1px solid #ddd;
}
.btn-period:hover {
    background: #e8e8e8;
}
.btn-period.active {
    background: #4a90e2;
    color: #fff;
    border-color: #4a90e2;
}

/* btn-icon 아이콘 버튼 */
.btn-icon {
    padding: 6px;
    background: transparent;
    color: #666;
}
.btn-icon:hover {
    background: rgba(0, 0, 0, 0.05);
    color: #333;
}

/* 테이블 액션 버튼 */
.btn-table-action {
    padding: 4px 8px;
    font-size: 11px;
    border-radius: 4px;
    background: #f5f5f5;
    color: #666;
    border: 1px solid #ddd;
}
.btn-table-action:hover {
    background: #e8e8e8;
}

/* 특수 버튼들 */
.btn-copy, .btn-copy-small { background: #607d8b; color: #fff; }
.btn-download-all { background: #4caf50; color: #fff; }
.btn-sms { background: #ff9800; color: #fff; }
.btn-virtual-account { background: #9c27b0; color: #fff; }

/* 알림 버튼 */
.btn-confirm-alert, .btn-dismiss-alert {
    padding: 4px 8px;
    border: none;
    background: transparent;
    cursor: pointer;
    border-radius: 4px;
}
.btn-confirm-alert:hover { background: rgba(76, 175, 80, 0.1); }
.btn-dismiss-alert:hover { background: rgba(244, 67, 54, 0.1); }

/* 승인/반려 액션 버튼 */
.btn-action.btn-approve { background: #4caf50; color: #fff; }
.btn-action.btn-reject { background: #f44336; color: #fff; }
.btn-action.btn-cancel { background: #78909c; color: #fff; }
.btn-action.btn-submit-reject { background: #ff9800; color: #fff; }

/* 접기/펼치기 버튼 */
.btn-collapse {
    padding: 4px 8px;
    background: transparent;
    border: none;
    cursor: pointer;
    color: #666;
}
.btn-collapse:hover {
    background: rgba(0, 0, 0, 0.05);
}

/* btn-confirm 호환 */
.btn-confirm { background: #4a90e2; color: #fff; }
.btn-confirm:hover { background: #357abd; }

/* btn-close (닫기 버튼) 호환 - .btn과 함께 사용시 */
.btn.btn-close { background: #78909c; color: #fff; }
.btn.btn-close:hover { background: #607d8b; }

/* 검색 버튼 영역 - 레거시 지원 */
.search-btn {
    display: flex;
    justify-content: space-between;
    align-items: center;
    padding: 14px 20px;
    margin: 16px -20px 0 -20px;
    background: var(--page-bg-tertiary);
    border-top: 1px solid var(--page-border-color);
    border-radius: 0 0 12px 12px;
}

/* 목록 상단 영역 (content-header) */
.content-header {
    display: flex;
    justify-content: space-between;
    align-items: center;
    padding: 14px 20px;
    background: var(--page-bg-tertiary, #f8f9fa);
    border: 1px solid var(--page-border-color, #e1e8ed);
    border-bottom: none;
    border-radius: 12px 12px 0 0;
    margin-top: 16px;
    box-shadow: 0 -2px 8px rgba(0, 0, 0, 0.04);
}

.content-header .summary {
    display: flex;
    align-items: center;
    gap: 8px;
    font-size: 14px;
    font-weight: 500;
    color: var(--page-text-primary, #2c3e50);
}

.content-header .summary span {
    font-weight: 700;
    color: var(--page-accent-blue, #4a90e2);
}

.content-header .btn-group {
    display: flex;
    gap: 8px;
}

.summary {
    display: flex;
    align-items: center;
    gap: 16px;
    font-size: 13px;
    color: var(--page-text-secondary);
}

.btn-group {
    display: flex;
    gap: 8px;
    justify-content: flex-end;
}

/* 뷰 전환 버튼 */
.view-toggle {
    display: flex;
    gap: 4px;
    background: var(--page-bg-secondary);
    padding: 4px;
    border-radius: 8px;
    border: 1px solid var(--page-border-color);
}

.view-toggle .btn {
    padding: 6px 14px;
    background: transparent;
    color: var(--page-text-secondary);
    border-radius: 6px;
}

.view-toggle .btn:hover {
    background: var(--page-bg-tertiary);
    color: var(--page-text-primary);
    transform: none;
    box-shadow: none;
}

.view-toggle .btn.active {
    background: var(--page-accent-blue);
    color: #fff;
}

/* ========================================
   테이블 스타일
   ======================================== */
/*.content-area {*/
/*    width: 100%;*/
/*    background: var(--page-bg-secondary);*/
/*    border: 1px solid var(--page-border-color);*/
/*    border-radius: 12px 12px 0 0;*/
/*    margin-top: 16px;*/
/*}*/

.table {
    width: 100%;
    min-width: 100%;
    border-collapse: collapse;
    table-layout: auto;
}

.table th,
.table td {
    padding: 12px 16px;
    text-align: left;
    font-size: 13px;
    border-bottom: 1px solid var(--page-border-color);
    vertical-align: middle;
}

.table th {
    background: var(--page-bg-tertiary);
    color: var(--page-text-secondary);
    font-weight: 600;
    white-space: nowrap;
    position: sticky;
    top: 0;
    z-index: 10;
}

.table td {
    color: var(--page-text-primary);
}

.table tbody tr {
    transition: background-color var(--page-transition-fast);
    cursor: pointer;
}

.table tbody tr:hover {
    background: var(--page-bg-tertiary);
}

.table tbody tr.selected {
    background: rgba(74, 144, 226, 0.12);
}

.table tbody tr.selected:hover {
    background: rgba(74, 144, 226, 0.18);
}

/* 테이블 셀 스타일 */
.table .detail-link {
    color: var(--page-accent-blue);
    text-decoration: none;
    font-weight: 500;
}

.table .detail-link:hover {
    text-decoration: underline;
}

/* 테이블 체크박스 셀 */
.table td.checkbox,
.table th.checkbox {
    width: 50px;
    text-align: center;
}

/* 빈 데이터 메시지 */
.table .empty-row td {
    text-align: center;
    color: var(--page-text-muted);
    padding: 40px 16px;
    font-size: 14px;
}

/* 테이블 액션 버튼 */
.table-actions {
    display: flex;
    gap: 4px;
    justify-content: center;
}

.table-action-btn {
    padding: 5px 10px;
    border-radius: 4px;
    font-size: 11px;
    font-weight: 500;
    border: none;
    color: #fff;
    cursor: pointer;
    transition: all var(--page-transition-fast);
}

.table-action-btn:hover {
    transform: translateY(-1px);
    filter: brightness(1.1);
}

.table-action-btn.detail {
    background: var(--page-accent-blue);
}

.table-action-btn.detail:hover {
    background: #3a7bc8;
}

.table-action-btn.edit {
    background: var(--page-accent-green);
}

.table-action-btn.edit:hover {
    background: #47a816;
}

.table-action-btn.delete {
    background: var(--page-accent-red);
}

.table-action-btn.delete:hover {
    background: #e8414f;
}

/* 스크롤 테이블 */
.scroll-table {
    width: 100%;
    min-width: 100%;
    overflow-x: auto;
    overflow-y: auto;
    max-height: calc(100vh - 380px);
}

.scroll-table thead {
    position: sticky;
    top: 0;
    z-index: 10;
}

.scroll-table thead th {
    background: var(--page-bg-tertiary);
}

/* 캘린더 컨테이너 */
.calendar-container {
    max-height: none;
    overflow: visible;
    padding: 24px;
}

/* ========================================
   페이지네이션
   ======================================== */
.pagination-container {
    display: flex;
    justify-content: center;
    align-items: center;
    gap: 16px;
    padding: 16px 20px;
    background: var(--page-bg-secondary, #fff);
    border: 1px solid var(--page-border-color, #e1e8ed);
    border-top: none;
    border-radius: 0 0 12px 12px;
    box-shadow: 0 2px 8px rgba(0, 0, 0, 0.06);
    margin-top: 0;
}

.pagination {
    display: flex;
    gap: 4px;
    list-style: none;
    padding: 0;
    margin: 0;
}

.pagination li a,
.pagination li span {
    display: flex;
    align-items: center;
    justify-content: center;
    min-width: 32px;
    height: 32px;
    padding: 0 8px;
    border-radius: 6px;
    font-size: 13px;
    color: var(--page-text-secondary);
    background: var(--page-bg-tertiary);
    border: 1px solid var(--page-border-color);
    text-decoration: none;
    transition: all var(--page-transition-fast);
}

.pagination li a:hover {
    background: var(--page-bg-secondary);
    border-color: var(--page-accent-blue);
    color: var(--page-accent-blue);
}

.pagination li.active a,
.pagination li.active span {
    background: var(--page-accent-blue);
    border-color: var(--page-accent-blue);
    color: #fff;
}

.pagination-select {
    display: flex;
    align-items: center;
    gap: 8px;
    font-size: 13px;
    color: var(--page-text-secondary);
}

/* ========================================
   팝업 스타일
   ======================================== */
.pop-overlay .pop-content {
    border-radius: 12px;
    box-shadow: 0 8px 32px rgba(0, 0, 0, 0.15);
    border: 1px solid var(--page-border-color);
}
.pop-overlay .pop-content.xx-large {
    max-width: 1200px;
    width: 95% !important;
}
/*.pop-overlay .pop-header {*/
/*    padding: 20px 24px;*/
/*    border-bottom: 1px solid var(--page-border-color);*/
/*    !*background: var(--page-bg-tertiary);*!*/
/*    border-radius: 12px 12px 0 0;*/
/*}*/

.pop-overlay .pop-header .tit {
    font-size: 16px;
    font-weight: 600;
    color: var(--page-text-primary);
}

.pop-overlay .pop-body {
    padding: 24px;
}

.pop-overlay .pop-body .filter {
    display: grid;
    grid-template-columns: repeat(2, 1fr);
    gap: 16px;
}

/* small, medium 팝업 1열 레이아웃 */
.pop-overlay .pop-content.small .pop-body .filter,
.pop-overlay .pop-content.medium .pop-body .filter {
    display: flex;
    flex-direction: column;
    grid-template-columns: 1fr;
    gap: 12px;
}

.pop-overlay .pop-content.small .pop-body .filter-item,
.pop-overlay .pop-content.medium .pop-body .filter-item {
    width: 100%;
}

/* small, medium 팝업 내 textarea 크기 (100자 이상 입력 가능) */
.pop-overlay .pop-content.small textarea,
.pop-overlay .pop-content.medium textarea,
.pop-overlay .pop-content.small textarea.form-box,
.pop-overlay .pop-content.medium textarea.form-box {
    width: 100%;
    min-height: 80px;
    height: auto;
    resize: vertical;
    line-height: 1.5;
}

.pop-content.big-large-three .pop-body .filter {
    display: flex;
    grid-template-columns: repeat(3, 1fr);
}
#popCompanyParkingMapping.pop-overlay .pop-body .filter {
    display: flex;
}

.pop-overlay .pop-body .filter-item {
    display: flex;
    flex-direction: column;
    gap: 6px;
}

.pop-overlay .pop-body .filter-item.full-width {
    grid-column: 1 / -1;
}

/* 팝업 내 날짜 범위 (date-range) */
.pop-overlay .pop-body .date-range,
.pop-overlay .date-range {
    display: flex;
    align-items: center;
    gap: 8px;
    flex-wrap: nowrap;
}

.pop-overlay .date-range input,
.pop-overlay .date-range .form-box {
    min-width: 120px;
    width: auto;
    flex: 1;
}

.pop-overlay .date-range span {
    color: var(--page-text-secondary);
    font-size: 13px;
    flex-shrink: 0;
}

/* 팝업 내 체크박스 그룹 (요일 선택 등) */
.pop-overlay .checkbox-group,
.checkbox-group {
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
}

.pop-overlay .checkbox-item,
.checkbox-item {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    padding: 8px 12px;
    background: var(--page-bg-tertiary);
    border: 1px solid var(--page-border-color);
    border-radius: 6px;
    cursor: pointer;
    transition: all var(--page-transition-fast);
    font-size: 13px;
    color: var(--page-text-primary);
}

.pop-overlay .checkbox-item:hover,
.checkbox-item:hover {
    background: var(--page-bg-secondary);
    border-color: var(--page-accent-blue);
}

.pop-overlay .checkbox-item:has(input:checked),
.checkbox-item:has(input:checked),
.pop-overlay .checkbox-item.checked,
.checkbox-item.checked {
    background: rgba(74, 144, 226, 0.1);
    border-color: var(--page-accent-blue);
    color: var(--page-accent-blue);
}

.pop-overlay .checkbox-item input,
.checkbox-item input {
    margin: 0;
}

.pop-overlay .checkbox-item span,
.checkbox-item span {
    user-select: none;
}

.pop-overlay .pop-body .filter-label {
    font-size: 13px;
    font-weight: 500;
    color: var(--page-text-secondary);
}

.pop-overlay .pop-body .form-box:focus {
    outline: none;
    border-color: var(--page-accent-blue);
    box-shadow: 0 0 0 3px rgba(74, 144, 226, 0.1);
}

.pop-overlay .pop-footer {
    padding: 16px 24px;
    /*border-top: 1px solid var(--page-border-color);*/
    /*background: var(--page-bg-tertiary);*/
    border-radius: 0 0 12px 12px;
    display: flex;
    justify-content: flex-end;
    gap: 8px;
}

/* 팝업 푸터 버튼 - 통합 스타일 적용 */
.pop-overlay .pop-footer .btn {
    padding: 10px 22px;
    border-radius: 8px;
    font-size: 14px;
    font-weight: 600;
    border: none;
    cursor: pointer;
    transition: all 0.2s ease;
    box-shadow: 0 2px 4px rgba(0, 0, 0, 0.08);
}

.pop-overlay .pop-footer .btn:hover {
    transform: translateY(-1px);
    box-shadow: 0 4px 8px rgba(0, 0, 0, 0.12);
}

/* 닫기/취소 버튼 */
.pop-overlay .pop-footer .btn.gray,
.pop-overlay .pop-footer .btn-close,
.pop-overlay .pop-footer .btn-cancel {
    background: linear-gradient(135deg, #78909c 0%, #607d8b 100%);
    color: #fff;
}

.pop-overlay .pop-footer .btn.gray:hover,
.pop-overlay .pop-footer .btn-close:hover,
.pop-overlay .pop-footer .btn-cancel:hover {
    background: linear-gradient(135deg, #607d8b 0%, #546e7a 100%);
    box-shadow: 0 4px 12px rgba(120, 144, 156, 0.35);
}

/* 확인/저장 버튼 */
.pop-overlay .pop-footer .btn.blue,
.pop-overlay .pop-footer .btn-confirm,
.pop-overlay .pop-footer .btn-save {
    background: linear-gradient(135deg, #4a90e2 0%, #357abd 100%);
    color: #fff;
}

.pop-overlay .pop-footer .btn.blue:hover,
.pop-overlay .pop-footer .btn-confirm:hover,
.pop-overlay .pop-footer .btn-save:hover {
    background: linear-gradient(135deg, #357abd 0%, #2968a3 100%);
    box-shadow: 0 4px 12px rgba(74, 144, 226, 0.35);
}

/* 삭제 버튼 */
.pop-overlay .pop-footer .btn.red,
.pop-overlay .pop-footer .btn-delete {
    background: linear-gradient(135deg, #ff5252 0%, #e53935 100%);
    color: #fff;
}

.pop-overlay .pop-footer .btn.red:hover,
.pop-overlay .pop-footer .btn-delete:hover {
    background: linear-gradient(135deg, #e53935 0%, #d32f2f 100%);
    box-shadow: 0 4px 12px rgba(255, 82, 82, 0.35);
}

/* 수정 버튼 */
.pop-overlay .pop-footer .btn.orange,
.pop-overlay .pop-footer .btn-edit {
    background: linear-gradient(135deg, #ff9800 0%, #f57c00 100%);
    color: #fff;
}

.pop-overlay .pop-footer .btn.orange:hover,
.pop-overlay .pop-footer .btn-edit:hover {
    background: linear-gradient(135deg, #f57c00 0%, #ef6c00 100%);
    box-shadow: 0 4px 12px rgba(255, 152, 0, 0.35);
}

/* 엑셀 버튼 */
.pop-overlay .pop-footer .btn.green,
.pop-overlay .pop-footer .btn-excel {
    background: linear-gradient(135deg, #4caf50 0%, #388e3c 100%);
    color: #fff;
}

.pop-overlay .pop-footer .btn.green:hover,
.pop-overlay .pop-footer .btn-excel:hover {
    background: linear-gradient(135deg, #388e3c 0%, #2e7d32 100%);
    box-shadow: 0 4px 12px rgba(76, 175, 80, 0.35);
}

/* ========================================
   정기권 승인 검토 다이얼로그
   ======================================== */

/* 팝업 바디 */
.pop-body.seasonticket-review-body {
    padding: 0;
    max-height: 70vh;
    overflow-y: auto;
}

/* 섹션 스타일 */
.seasonticket-review-body .detail-section {
    background: #fff;
    border-bottom: 1px solid #e1e8ed;
    padding: 20px 24px;
}

.seasonticket-review-body .detail-section:last-child {
    border-bottom: none;
}

.seasonticket-review-body .detail-section-header {
    display: flex;
    justify-content: space-between;
    align-items: center;
    margin-bottom: 16px;
    padding-bottom: 10px;
    border-bottom: 2px solid #4a90e2;
}

.seasonticket-review-body .detail-section-header h4 {
    margin: 0;
    font-size: 14px;
    font-weight: 600;
    color: #2c3e50;
    display: flex;
    align-items: center;
    gap: 8px;
}

.seasonticket-review-body .detail-section-header h4::before {
    content: '';
    display: inline-block;
    width: 4px;
    height: 16px;
    background: #4a90e2;
    border-radius: 2px;
}

/* 상태 배지 */
.seasonticket-review-body .detail-status-badge {
    display: inline-block;
    padding: 4px 12px;
    border-radius: 20px;
    font-size: 12px;
    font-weight: 600;
    background: #e1e8ed;
    color: #7f8c8d;
}

.seasonticket-review-body .detail-status-badge[data-status="PENDING"],
.seasonticket-review-body .detail-status-badge.status-pending {
    background: rgba(255, 193, 7, 0.15);
    color: #d48806;
}

.seasonticket-review-body .detail-status-badge[data-status="APPROVED"],
.seasonticket-review-body .detail-status-badge.status-approved {
    background: rgba(82, 196, 26, 0.15);
    color: #52c41a;
}

.seasonticket-review-body .detail-status-badge[data-status="REJECTED"],
.seasonticket-review-body .detail-status-badge.status-rejected {
    background: rgba(255, 82, 82, 0.15);
    color: #ff5252;
}

/* 컨테이너 행 (좌측 정보 + 우측 파일) */
.seasonticket-review-body .detail-container-row {
    display: flex;
    gap: 24px;
}

/* 왼쪽: 정보 영역 */
.seasonticket-review-body .detail-info-area {
    flex: 1;
    min-width: 0;
}

/* 그리드 레이아웃 */
.seasonticket-review-body .detail-grid {
    display: flex;
    flex-direction: column;
    gap: 12px;
}

.seasonticket-review-body .detail-row {
    display: grid;
    grid-template-columns: repeat(2, 1fr);
    gap: 16px;
}

/* 상세 아이템 */
.seasonticket-review-body .detail-item {
    display: flex;
    align-items: center;
    gap: 12px;
    padding: 10px 14px;
    background: #f8f9fa;
    border-radius: 8px;
    border: 1px solid #f0f0f0;
}

.seasonticket-review-body .detail-label {
    flex-shrink: 0;
    width: 70px;
    font-size: 12px;
    font-weight: 500;
    color: #7f8c8d;
}

.seasonticket-review-body .detail-value {
    flex: 1;
    font-size: 14px;
    font-weight: 500;
    color: #2c3e50;
}

.seasonticket-review-body .detail-value.lpn-value {
    font-size: 15px;
    font-weight: 700;
    color: #4a90e2;
    font-family: 'Orbitron', 'Noto Sans KR', sans-serif;
    letter-spacing: 1px;
}

/* 오른쪽: 파일 영역 */
.seasonticket-review-body .detail-file-area {
    width: 280px;
    flex-shrink: 0;
}

.seasonticket-review-body .file-area-header {
    display: flex;
    justify-content: space-between;
    align-items: center;
    margin-bottom: 12px;
    padding-bottom: 8px;
    border-bottom: 1px solid #e1e8ed;
}

.seasonticket-review-body .file-area-title {
    font-size: 13px;
    font-weight: 600;
    color: #2c3e50;
    margin: 0;
}

.seasonticket-review-body .file-list-wrapper {
    background: #f8f9fa;
    border: 1px solid #e1e8ed;
    border-radius: 8px;
    padding: 12px;
    max-height: 250px;
    overflow-y: auto;
}

.seasonticket-review-body .file-list {
    display: flex;
    flex-direction: column;
    gap: 8px;
}

.seasonticket-review-body .file-item {
    display: flex;
    align-items: center;
    gap: 10px;
    padding: 10px 12px;
    background: #fff;
    border: 1px solid #e1e8ed;
    border-radius: 6px;
    transition: all 0.2s ease;
}

.seasonticket-review-body .file-item:hover {
    border-color: #4a90e2;
    box-shadow: 0 2px 6px rgba(74, 144, 226, 0.15);
}

.seasonticket-review-body .file-icon {
    width: 24px;
    height: 24px;
    color: #7f8c8d;
    flex-shrink: 0;
}

.seasonticket-review-body .file-icon svg {
    width: 100%;
    height: 100%;
}

.seasonticket-review-body .file-name {
    flex: 1;
    font-size: 13px;
    color: #2c3e50;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.seasonticket-review-body .file-name a {
    color: inherit;
    text-decoration: none;
}

.seasonticket-review-body .file-name a:hover {
    color: #4a90e2;
    text-decoration: underline;
}

.seasonticket-review-body .file-empty {
    text-align: center;
    padding: 30px 20px;
    color: #95a5a6;
    font-size: 13px;
}

/* 반려 섹션 */
.seasonticket-review-body .reject-section {
    background: #fff8f8;
    border-top: 2px solid #ff5252;
}

.seasonticket-review-body .reject-section .detail-section-header {
    border-bottom-color: #ff5252;
}

.seasonticket-review-body .reject-section .detail-section-header h4::before {
    background: #ff5252;
}

.seasonticket-review-body .reject-input-area {
    display: flex;
    flex-direction: column;
    gap: 12px;
}

.seasonticket-review-body .reject-input-area textarea {
    min-height: 100px;
    resize: vertical;
}

.seasonticket-review-body .reject-buttons {
    display: flex;
    justify-content: flex-end;
    gap: 8px;
}

/* 푸터 스타일 */
.pop-footer.seasonticket-review-footer {
    display: flex;
    justify-content: space-between;
    align-items: center;
    padding: 16px 24px;
    background: #f8f9fa;
    border-top: 1px solid #e1e8ed;
}

.seasonticket-review-footer .footer-left,
.seasonticket-review-footer .footer-right {
    display: flex;
    gap: 8px;
    align-items: center;
}

/* 수정 팝업 내 date-range */
.date-range-inline {
    display: flex;
    align-items: center;
    gap: 8px;
    flex: 1;
}

.date-range-inline .form-box {
    flex: 1;
    min-width: 0;
}

.date-range-inline .date-sep {
    color: #7f8c8d;
    font-size: 14px;
}

/* 수정 팝업 detail-item 내 input */
.pop-body .detail-item .form-box,
.pop-body .detail-item input,
.pop-body .detail-item select {
    flex: 1;
    min-width: 0;
}

/* 반응형 */
@media (max-width: 992px) {
    .seasonticket-review-body .detail-container-row {
        flex-direction: column;
    }

    .seasonticket-review-body .detail-file-area {
        width: 100%;
    }
}

@media (max-width: 768px) {
    .seasonticket-review-body .detail-row {
        grid-template-columns: 1fr;
    }

    .pop-footer.seasonticket-review-footer {
        flex-direction: column;
        gap: 12px;
    }

    .seasonticket-review-footer .footer-left,
    .seasonticket-review-footer .footer-right {
        width: 100%;
        justify-content: center;
    }
}

/* ========================================
   정기권 신청정보 수정 다이얼로그
   ======================================== */

/* 팝업 바디 */
.pop-body.seasonticket-edit-body {
    padding: 0;
}

/* 섹션 스타일 */
.seasonticket-edit-body .detail-section {
    background: #fff;
    padding: 20px 24px;
}

.seasonticket-edit-body .detail-section-header {
    display: flex;
    justify-content: space-between;
    align-items: center;
    margin-bottom: 16px;
    padding-bottom: 10px;
    border-bottom: 2px solid #4a90e2;
}

.seasonticket-edit-body .detail-section-header h4 {
    margin: 0;
    font-size: 14px;
    font-weight: 600;
    color: #2c3e50;
    display: flex;
    align-items: center;
    gap: 8px;
}

.seasonticket-edit-body .detail-section-header h4::before {
    content: '';
    display: inline-block;
    width: 4px;
    height: 16px;
    background: #4a90e2;
    border-radius: 2px;
}

/* 그리드 레이아웃 */
.seasonticket-edit-body .detail-grid {
    display: flex;
    flex-direction: column;
    gap: 12px;
}

.seasonticket-edit-body .detail-row {
    display: grid;
    grid-template-columns: repeat(2, 1fr);
    gap: 16px;
}

/* 상세 아이템 */
.seasonticket-edit-body .detail-item {
    display: flex;
    align-items: center;
    gap: 12px;
    padding: 8px 14px;
    background: #f8f9fa;
    border-radius: 8px;
    border: 1px solid #f0f0f0;
}

.seasonticket-edit-body .detail-label {
    flex-shrink: 0;
    width: 70px;
    font-size: 12px;
    font-weight: 500;
    color: #7f8c8d;
}

.seasonticket-edit-body .detail-item .form-box,
.seasonticket-edit-body .detail-item input,
.seasonticket-edit-body .detail-item select {
    flex: 1;
    min-width: 0;
    padding: 8px 12px;
    font-size: 13px;
    border: 1px solid #e1e8ed;
    border-radius: 6px;
    background: #fff;
    transition: all 0.2s ease;
}

.seasonticket-edit-body .detail-item input:focus,
.seasonticket-edit-body .detail-item select:focus {
    border-color: #4a90e2;
    box-shadow: 0 0 0 3px rgba(74, 144, 226, 0.1);
    outline: none;
}

.seasonticket-edit-body .detail-item input:disabled {
    background: #f0f0f0;
    color: #7f8c8d;
    cursor: not-allowed;
}

/* 날짜 범위 */
.seasonticket-edit-body .date-range-inline {
    display: flex;
    align-items: center;
    gap: 8px;
    flex: 1;
}

.seasonticket-edit-body .date-range-inline .form-box {
    flex: 1;
    min-width: 0;
}

.seasonticket-edit-body .date-range-inline .date-sep {
    color: #7f8c8d;
    font-size: 14px;
    flex-shrink: 0;
}

/* 반응형 */
@media (max-width: 768px) {
    .seasonticket-edit-body .detail-row {
        grid-template-columns: 1fr;
    }

    .seasonticket-edit-body .date-range-inline {
        flex-direction: column;
        gap: 8px;
    }

    .seasonticket-edit-body .date-range-inline .form-box {
        width: 100%;
    }
}

/* 할인/감면 다이얼로그 */
#popCreateDiscountCarInLotDialog .discount-dialog-container {
    display: flex;
    gap: 24px;
    margin-bottom: 24px;
}

#popCreateDiscountCarInLotDialog .discount-vehicle-image {
    flex-shrink: 0;
}

#popCreateDiscountCarInLotDialog .discount-vehicle-image .filter-label {
    display: block;
    margin-bottom: 8px;
    font-weight: 600;
}

#popCreateDiscountCarInLotDialog .vehicle-image-box {
    width: 329px;
    height: 297px;
    border: 1px solid var(--page-border-color);
    border-radius: 8px;
    background: var(--page-bg-tertiary);
    display: flex;
    align-items: center;
    justify-content: center;
    overflow: hidden;
}

#popCreateDiscountCarInLotDialog .vehicle-image-box img {
    max-width: 100%;
    max-height: 100%;
    object-fit: contain;
}

#popCreateDiscountCarInLotDialog .discount-vehicle-info {
    flex: 1;
}

#popCreateDiscountCarInLotDialog .discount-vehicle-info .filter-label {
    display: block;
    margin-bottom: 8px;
    font-weight: 600;
}

#popCreateDiscountCarInLotDialog .discount-vehicle-info .info-card {
    background: var(--page-bg-tertiary);
    border: 1px solid var(--page-border-color);
    border-radius: 8px;
    padding: 16px;
}

#popCreateDiscountCarInLotDialog .discount-vehicle-info .info-row {
    display: flex;
    /*padding: 8px 0;*/
    border-bottom: 1px solid var(--page-border-color);
}

#popCreateDiscountCarInLotDialog .discount-vehicle-info .info-row:last-child {
    border-bottom: none;
}

#popCreateDiscountCarInLotDialog .discount-vehicle-info .info-label {
    width: 110px;
    font-weight: 500;
    color: var(--page-text-secondary);
    flex-shrink: 0;
}

#popCreateDiscountCarInLotDialog .discount-vehicle-info .info-value {
    flex: 1;
    color: var(--page-text-primary);
}

#popCreateDiscountCarInLotDialog .discount-section {
    margin-top: 20px;
}

#popCreateDiscountCarInLotDialog .discount-section .filter-label {
    display: block;
    margin-bottom: 10px;
    font-weight: 600;
    font-size: 14px;
}

#popCreateDiscountCarInLotDialog .discount-coupon-list {
    display: flex;
    flex-wrap: wrap;
    gap: 10px;
    padding: 16px;
    background: var(--page-bg-tertiary);
    border: 1px solid var(--page-border-color);
    border-radius: 8px;
    min-height: 60px;
}

#popCreateDiscountCarInLotDialog .discount-coupon-list .coupon-btn {
    padding: 8px 16px;
    border: 1px solid var(--page-border-color);
    border-radius: 6px;
    background: #fff;
    cursor: pointer;
    transition: all 0.2s;
    font-size: 13px;
}

#popCreateDiscountCarInLotDialog .discount-coupon-list .coupon-btn:hover {
    border-color: var(--page-accent-blue);
    background: rgba(74, 144, 226, 0.05);
}

#popCreateDiscountCarInLotDialog .discount-coupon-list .coupon-btn.selected {
    border-color: var(--page-accent-blue);
    background: rgba(74, 144, 226, 0.1);
    color: var(--page-accent-blue);
}

#popCreateDiscountCarInLotDialog .discount-applied-list {
    padding: 12px;
    background: var(--page-bg-tertiary);
    border: 1px solid var(--page-border-color);
    border-radius: 8px;
}

#popCreateDiscountCarInLotDialog .discount-applied-item {
    display: flex;
    justify-content: space-between;
    align-items: center;
    padding: 10px 12px;
    background: #fff;
    border-radius: 6px;
    margin-bottom: 8px;
    border: 1px solid var(--page-border-color);
}

#popCreateDiscountCarInLotDialog .discount-applied-item:last-child {
    margin-bottom: 0;
}

#popCreateDiscountCarInLotDialog .discount-applied-item .discount-name {
    font-weight: 500;
}

#popCreateDiscountCarInLotDialog .discount-applied-item .btn-delete-discount {
    padding: 4px 10px;
    font-size: 12px;
}

/* 팝업 테이블 */
.pop-overlay .table {
    width: 100%;
    border-collapse: collapse;
    margin-top: 16px;
}

.pop-overlay .table th,
.pop-overlay .table td {
    padding: 10px 12px;
    font-size: 13px;
    border-bottom: 1px solid var(--page-border-color);
    text-align: left;
}

.pop-overlay .table th {
    background: var(--page-bg-tertiary);
    color: var(--page-text-secondary);
    font-weight: 600;
}

.pop-overlay .table td {
    color: var(--page-text-primary);
}

.pop-overlay .table tbody tr:hover {
    background: var(--page-bg-tertiary);
}

.pop-overlay .table input[type="checkbox"],
.pop-overlay input[type="checkbox"] {
    width: 16px !important;
    height: 16px !important;
    min-width: 16px !important;
    cursor: pointer;
    appearance: auto !important;
    -webkit-appearance: checkbox !important;
    -moz-appearance: checkbox !important;
    opacity: 1 !important;
    position: relative !important;
    accent-color: var(--page-accent-blue);
}

/* ========================================
   탭 스타일
   ======================================== */
.tab-container {
    display: flex;
    gap: 4px;
    background: var(--page-bg-tertiary);
    padding: 4px;
    border-radius: 8px;
    margin-bottom: 16px;
}

.tab-btn {
    padding: 8px 16px;
    background: transparent;
    border: none;
    border-radius: 6px;
    font-size: 13px;
    font-weight: 500;
    color: var(--page-text-secondary);
    cursor: pointer;
    transition: all var(--page-transition-fast);
}

.tab-btn:hover {
    background: var(--page-bg-secondary);
    color: var(--page-text-primary);
}

.tab-btn.active {
    background: var(--page-accent-blue);
    color: #fff;
}

/* ========================================
   카드 스타일
   ======================================== */
.card {
    background: var(--page-bg-secondary);
    border: 1px solid var(--page-border-color);
    border-radius: 12px;
    padding: 20px;
    box-shadow: var(--page-shadow-sm);
}

.card-header {
    display: flex;
    justify-content: space-between;
    align-items: center;
    margin-bottom: 16px;
    padding-bottom: 16px;
    border-bottom: 1px solid var(--page-border-color);
}

.card-title {
    font-size: 16px;
    font-weight: 600;
    color: var(--page-text-primary);
    margin: 0;
}

.card-body {
    padding: 0;
}

/* ========================================
   상태 뱃지
   ======================================== */
.badge {
    display: inline-flex;
    align-items: center;
    padding: 4px 10px;
    border-radius: 20px;
    font-size: 12px;
    font-weight: 500;
}

.badge-blue {
    background: rgba(74, 144, 226, 0.1);
    color: var(--page-accent-blue);
}

.badge-green {
    background: rgba(82, 196, 26, 0.1);
    color: var(--page-accent-green);
}

.badge-red {
    background: rgba(255, 71, 87, 0.1);
    color: var(--page-accent-red);
}

.badge-orange {
    background: rgba(255, 140, 66, 0.1);
    color: var(--page-accent-orange);
}

.badge-gray {
    background: rgba(127, 140, 141, 0.1);
    color: var(--page-text-secondary);
}

/* ========================================
   폼 그룹
   ======================================== */
.form-group {
    margin-bottom: 16px;
}

.form-group label {
    display: block;
    margin-bottom: 6px;
    font-size: 13px;
    font-weight: 500;
    color: var(--page-text-secondary);
}

.form-group input,
.form-group select,
.form-group textarea {
    width: 100%;
    padding: 10px 14px;
    border: 1px solid var(--page-border-color);
    border-radius: 8px;
    font-size: 14px;
    color: var(--page-text-primary);
    background: var(--page-bg-secondary);
    transition: border-color var(--page-transition-fast), box-shadow var(--page-transition-fast);
}

.form-group input:focus,
.form-group select:focus,
.form-group textarea:focus {
    outline: none;
    border-color: var(--page-accent-blue);
    box-shadow: 0 0 0 3px rgba(74, 144, 226, 0.1);
}

.form-group textarea {
    min-height: 100px;
    resize: vertical;
}

/* ========================================
   체크박스 / 라디오 스타일
   ======================================== */
input[type="checkbox"],
input[type="radio"] {
    width: 18px;
    height: 18px;
    min-width: 18px;
    cursor: pointer;
    accent-color: var(--page-accent-blue);
    appearance: auto;
    -webkit-appearance: checkbox;
    -moz-appearance: checkbox;
    opacity: 1 !important;
    position: relative !important;
    margin: 0 !important;
}

input[type="radio"] {
    -webkit-appearance: radio;
    -moz-appearance: radio;
}

/* 테이블 내 체크박스 */
.table input[type="checkbox"],
.pop-overlay input[type="checkbox"] {
    width: 16px;
    height: 16px;
    min-width: 16px;
    opacity: 1 !important;
    position: relative !important;
}

/* ========================================
   알림 / 토스트 메시지
   ======================================== */
.alert {
    padding: 12px 16px;
    border-radius: 8px;
    font-size: 13px;
    margin-bottom: 16px;
}

.alert-info {
    background: rgba(74, 144, 226, 0.1);
    color: var(--page-accent-blue);
    border: 1px solid rgba(74, 144, 226, 0.2);
}

.alert-success {
    background: rgba(82, 196, 26, 0.1);
    color: var(--page-accent-green);
    border: 1px solid rgba(82, 196, 26, 0.2);
}

.alert-warning {
    background: rgba(255, 140, 66, 0.1);
    color: var(--page-accent-orange);
    border: 1px solid rgba(255, 140, 66, 0.2);
}

.alert-error {
    background: rgba(255, 71, 87, 0.1);
    color: var(--page-accent-red);
    border: 1px solid rgba(255, 71, 87, 0.2);
}

/* ========================================
   로딩 스피너
   ======================================== */
.loading-spinner {
    display: inline-block;
    width: 20px;
    height: 20px;
    border: 2px solid var(--page-border-color);
    border-top-color: var(--page-accent-blue);
    border-radius: 50%;
    animation: spin 0.8s linear infinite;
}

@keyframes spin {
    to {
        transform: rotate(360deg);
    }
}

/* ========================================
   반응형 스타일
   ======================================== */
@media (max-width: 768px) {
    .container {
        padding: 12px;
    }

    .search-area {
        padding: 16px;
    }

    .filter {
        flex-direction: column;
        align-items: stretch;
    }

    .filter-item {
        width: 100%;
    }

    .form-box {
        width: 100%;
        min-width: auto;
    }

    .search-btn {
        flex-direction: column;
        gap: 12px;
    }

    .btn-group {
        width: 100%;
        justify-content: flex-end;
    }

    .table th,
    .table td {
        padding: 8px 12px;
        font-size: 12px;
    }
}

/* ========================================
   미납정책 설정 팝업 스타일
   ======================================== */
.policy-edit-body {
    padding: 20px 24px;
}

.policy-edit-body .detail-section {
    background: var(--page-bg-secondary, #fff);
    border: 1px solid var(--page-border-color, #e1e8ed);
    border-radius: 10px;
    padding: 0;
    margin-bottom: 16px;
    overflow: hidden;
}

.policy-edit-body .detail-section:last-child {
    margin-bottom: 0;
}

.policy-edit-body .detail-section-header {
    display: flex;
    align-items: center;
    gap: 12px;
    padding: 14px 18px;
    background: linear-gradient(135deg, #f8f9fa 0%, #f1f3f5 100%);
    border-bottom: 1px solid var(--page-border-color, #e1e8ed);
}

.policy-edit-body .detail-section-header h4 {
    margin: 0;
    font-size: 14px;
    font-weight: 600;
    color: var(--page-text-primary, #333);
}

.policy-edit-body .detail-section-header .section-desc {
    font-size: 12px;
    color: var(--page-text-secondary, #6c757d);
    padding: 3px 10px;
    background: rgba(74, 144, 226, 0.1);
    border-radius: 12px;
}

.policy-edit-body .detail-grid {
    padding: 16px 18px;
}

.policy-edit-body .detail-row {
    display: grid;
    grid-template-columns: repeat(2, 1fr);
    gap: 14px;
    margin-bottom: 14px;
}

.policy-edit-body .detail-row:last-child {
    margin-bottom: 0;
}

.policy-edit-body .detail-row.half {
    grid-template-columns: 1fr 1fr;
}

.policy-edit-body .detail-row.half .detail-item:only-child {
    grid-column: 1;
}

.policy-edit-body .detail-item {
    display: flex;
    align-items: center;
    gap: 12px;
    padding: 10px 14px;
    background: #f8f9fa;
    border-radius: 8px;
    border: 1px solid transparent;
    transition: all 0.2s ease;
}

.policy-edit-body .detail-item:hover {
    border-color: var(--page-border-color, #e1e8ed);
}

.policy-edit-body .detail-item:focus-within {
    border-color: var(--page-accent-blue, #4a90e2);
    background: #fff;
    box-shadow: 0 0 0 3px rgba(74, 144, 226, 0.1);
}

.policy-edit-body .detail-label {
    min-width: 100px;
    font-size: 13px;
    font-weight: 500;
    color: var(--page-text-secondary, #6c757d);
    flex-shrink: 0;
}

.policy-edit-body .detail-label.required::after {
    content: " *";
    color: #ff5252;
}

.policy-edit-body .detail-item input.form-box,
.policy-edit-body .detail-item select.form-box {
    flex: 1;
    padding: 8px 12px;
    border: 1px solid var(--page-border-color, #e1e8ed);
    border-radius: 6px;
    font-size: 13px;
    background: #fff;
    transition: all 0.2s ease;
}

.policy-edit-body .detail-item input.form-box:focus,
.policy-edit-body .detail-item select.form-box:focus {
    outline: none;
    border-color: var(--page-accent-blue, #4a90e2);
}

.policy-edit-body .input-with-unit {
    display: flex;
    align-items: center;
    gap: 8px;
    flex: 1;
}

.policy-edit-body .input-with-unit input.form-box {
    flex: 1;
    min-width: 80px;
    text-align: right;
    padding: 8px 12px;
    border: 1px solid var(--page-border-color, #e1e8ed);
    border-radius: 6px;
    font-size: 13px;
    background: #fff;
}

.policy-edit-body .input-with-unit input.form-box:focus {
    outline: none;
    border-color: var(--page-accent-blue, #4a90e2);
}

.policy-edit-body .input-with-unit .unit {
    font-size: 13px;
    color: var(--page-text-secondary, #6c757d);
    white-space: nowrap;
    min-width: 35px;
}

/* 토글 스위치 영역 */
.policy-edit-body .toggle-options-row {
    display: flex;
    flex-wrap: wrap;
    gap: 16px;
    padding: 18px;
}

.policy-edit-body .toggle-option {
    display: flex;
    align-items: center;
    gap: 12px;
    padding: 12px 18px;
    background: #f8f9fa;
    border-radius: 8px;
    border: 1px solid var(--page-border-color, #e1e8ed);
    transition: all 0.2s ease;
}

.policy-edit-body .toggle-option:hover {
    background: #fff;
    box-shadow: 0 2px 8px rgba(0, 0, 0, 0.06);
}

.policy-edit-body .toggle-switch {
    position: relative;
    width: 44px;
    height: 24px;
}

.policy-edit-body .toggle-switch input {
    opacity: 0;
    width: 0;
    height: 0;
}

.policy-edit-body .toggle-slider {
    position: absolute;
    cursor: pointer;
    top: 0;
    left: 0;
    right: 0;
    bottom: 0;
    background-color: #ccc;
    transition: 0.3s;
    border-radius: 24px;
}

.policy-edit-body .toggle-slider:before {
    position: absolute;
    content: "";
    height: 18px;
    width: 18px;
    left: 3px;
    bottom: 3px;
    background-color: white;
    transition: 0.3s;
    border-radius: 50%;
    box-shadow: 0 2px 4px rgba(0, 0, 0, 0.15);
}

.policy-edit-body .toggle-switch input:checked + .toggle-slider {
    background: linear-gradient(135deg, #4a90e2 0%, #357abd 100%);
}

.policy-edit-body .toggle-switch input:checked + .toggle-slider:before {
    transform: translateX(20px);
}

.policy-edit-body .toggle-label {
    font-size: 13px;
    font-weight: 500;
    color: var(--page-text-primary, #333);
}

.policy-edit-body .toggle-label.active-label {
    color: var(--page-accent-blue, #4a90e2);
    font-weight: 600;
}

/* 설명 textarea 영역 */
.policy-edit-body .detail-textarea-area {
    padding: 16px 18px;
}

.policy-edit-body .detail-textarea-area textarea.form-box {
    width: 100%;
    padding: 12px 14px;
    border: 1px solid var(--page-border-color, #e1e8ed);
    border-radius: 8px;
    font-size: 13px;
    line-height: 1.6;
    resize: vertical;
    min-height: 80px;
    background: #fff;
    transition: all 0.2s ease;
}

.policy-edit-body .detail-textarea-area textarea.form-box:focus {
    outline: none;
    border-color: var(--page-accent-blue, #4a90e2);
    box-shadow: 0 0 0 3px rgba(74, 144, 226, 0.1);
}

/* 반응형 */
@media (max-width: 768px) {
    .policy-edit-body .detail-row {
        grid-template-columns: 1fr;
    }

    .policy-edit-body .detail-row.half {
        grid-template-columns: 1fr;
    }

    .policy-edit-body .toggle-options-row {
        flex-direction: column;
    }

    .policy-edit-body .toggle-option {
        width: 100%;
    }
}
