@charset "UTF-8";
/* common.scss */
/* _variables.scss */
@font-face {
  font-family: 'Glyphicons Halflings'; src: url("../css/fonts/glyphicons-halflings-regular.eot"); src: url("../css/fonts/glyphicons-halflings-regular.eot?#iefix") format("embedded-opentype"), url("../css/fonts/glyphicons-halflings-regular.woff2") format("woff2"), url("../css/fonts/glyphicons-halflings-regular.woff") format("woff"), url("../css/fonts/glyphicons-halflings-regular.ttf") format("truetype"), url("../css/fonts/glyphicons-halflings-regular.svg#glyphicons_halflingsregular") format("svg");
}

.glyphicon {
  position: relative;
  top: 1px;
  display: inline-block;
  font-family: 'Glyphicons Halflings';
  font-style: normal;
  font-weight: normal;
  line-height: 1;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
}

.glyphicon-asterisk:before {
  content: "\2a";
}

.glyphicon-plus:before {
  content: "\2b";
}

.glyphicon-euro:before, .glyphicon-eur:before {
  content: "\20ac";
}

.glyphicon-minus:before {
  content: "\2212";
}

.glyphicon-cloud:before {
  content: "\2601";
}

.glyphicon-envelope:before {
  content: "\2709";
}

.glyphicon-pencil:before {
  content: "\270f";
}

.glyphicon-glass:before {
  content: "\e001";
}

.glyphicon-music:before {
  content: "\e002";
}

.glyphicon-search:before {
  content: "\e003";
}

.glyphicon-heart:before {
  content: "\e005";
}

.glyphicon-star:before {
  content: "\e006";
}

.glyphicon-star-empty:before {
  content: "\e007";
}

.glyphicon-user:before {
  content: "\e008";
}

.glyphicon-film:before {
  content: "\e009";
}

.glyphicon-th-large:before {
  content: "\e010";
}

.glyphicon-th:before {
  content: "\e011";
}

.glyphicon-th-list:before {
  content: "\e012";
}

.glyphicon-ok:before {
  content: "\e013";
}

.glyphicon-remove:before {
  content: "\e014";
}

.glyphicon-zoom-in:before {
  content: "\e015";
}

.glyphicon-zoom-out:before {
  content: "\e016";
}

.glyphicon-off:before {
  content: "\e017";
}

.glyphicon-signal:before {
  content: "\e018";
}

.glyphicon-cog:before {
  content: "\e019";
}

.glyphicon-trash:before {
  content: "\e020";
}

.glyphicon-home:before {
  content: "\e021";
}

.glyphicon-file:before {
  content: "\e022";
}

.glyphicon-time:before {
  content: "\e023";
}

.glyphicon-road:before {
  content: "\e024";
}

.glyphicon-download-alt:before {
  content: "\e025";
}

.glyphicon-download:before {
  content: "\e026";
}

.glyphicon-upload:before {
  content: "\e027";
}

.glyphicon-inbox:before {
  content: "\e028";
}

.glyphicon-play-circle:before {
  content: "\e029";
}

.glyphicon-repeat:before {
  content: "\e030";
}

.glyphicon-refresh:before {
  content: "\e031";
}

.glyphicon-list-alt:before {
  content: "\e032";
}

.glyphicon-lock:before {
  content: "\e033";
}

.glyphicon-flag:before {
  content: "\e034";
}

.glyphicon-headphones:before {
  content: "\e035";
}

.glyphicon-volume-off:before {
  content: "\e036";
}

.glyphicon-volume-down:before {
  content: "\e037";
}

.glyphicon-volume-up:before {
  content: "\e038";
}

.glyphicon-qrcode:before {
  content: "\e039";
}

.glyphicon-barcode:before {
  content: "\e040";
}

.glyphicon-tag:before {
  content: "\e041";
}

.glyphicon-tags:before {
  content: "\e042";
}

.glyphicon-book:before {
  content: "\e043";
}

.glyphicon-bookmark:before {
  content: "\e044";
}

.glyphicon-print:before {
  content: "\e045";
}

.glyphicon-camera:before {
  content: "\e046";
}

.glyphicon-font:before {
  content: "\e047";
}

.glyphicon-bold:before {
  content: "\e048";
}

.glyphicon-italic:before {
  content: "\e049";
}

.glyphicon-text-height:before {
  content: "\e050";
}

.glyphicon-text-width:before {
  content: "\e051";
}

.glyphicon-align-left:before {
  content: "\e052";
}

.glyphicon-align-center:before {
  content: "\e053";
}

.glyphicon-align-right:before {
  content: "\e054";
}

.glyphicon-align-justify:before {
  content: "\e055";
}

.glyphicon-list:before {
  content: "\e056";
}

.glyphicon-indent-left:before {
  content: "\e057";
}

.glyphicon-indent-right:before {
  content: "\e058";
}

.glyphicon-facetime-video:before {
  content: "\e059";
}

.glyphicon-picture:before {
  content: "\e060";
}

.glyphicon-map-marker:before {
  content: "\e062";
}

.glyphicon-adjust:before {
  content: "\e063";
}

.glyphicon-tint:before {
  content: "\e064";
}

.glyphicon-edit:before {
  content: "\e065";
}

.glyphicon-share:before {
  content: "\e066";
}

.glyphicon-check:before {
  content: "\e067";
}

.glyphicon-move:before {
  content: "\e068";
}

.glyphicon-step-backward:before {
  content: "\e069";
}

.glyphicon-fast-backward:before {
  content: "\e070";
}

.glyphicon-backward:before {
  content: "\e071";
}

.glyphicon-play:before {
  content: "\e072";
}

.glyphicon-pause:before {
  content: "\e073";
}

.glyphicon-stop:before {
  content: "\e074";
}

.glyphicon-forward:before {
  content: "\e075";
}

.glyphicon-fast-forward:before {
  content: "\e076";
}

.glyphicon-step-forward:before {
  content: "\e077";
}

.glyphicon-eject:before {
  content: "\e078";
}

.glyphicon-chevron-left:before {
  content: "\e079";
}

.glyphicon-chevron-right:before {
  content: "\e080";
}

.glyphicon-plus-sign:before {
  content: "\e081";
}

.glyphicon-minus-sign:before {
  content: "\e082";
}

.glyphicon-remove-sign:before {
  content: "\e083";
}

.glyphicon-ok-sign:before {
  content: "\e084";
}

.glyphicon-question-sign:before {
  content: "\e085";
}

.glyphicon-info-sign:before {
  content: "\e086";
}

.glyphicon-screenshot:before {
  content: "\e087";
}

.glyphicon-remove-circle:before {
  content: "\e088";
}

.glyphicon-ok-circle:before {
  content: "\e089";
}

.glyphicon-ban-circle:before {
  content: "\e090";
}

.glyphicon-arrow-left:before {
  content: "\e091";
}

.glyphicon-arrow-right:before {
  content: "\e092";
}

.glyphicon-arrow-up:before {
  content: "\e093";
}

.glyphicon-arrow-down:before {
  content: "\e094";
}

.glyphicon-share-alt:before {
  content: "\e095";
}

.glyphicon-resize-full:before {
  content: "\e096";
}

.glyphicon-resize-small:before {
  content: "\e097";
}

.glyphicon-exclamation-sign:before {
  content: "\e101";
}

.glyphicon-gift:before {
  content: "\e102";
}

.glyphicon-leaf:before {
  content: "\e103";
}

.glyphicon-fire:before {
  content: "\e104";
}

.glyphicon-eye-open:before {
  content: "\e105";
}

.glyphicon-eye-close:before {
  content: "\e106";
}

.glyphicon-warning-sign:before {
  content: "\e107";
}

.glyphicon-plane:before {
  content: "\e108";
}

.glyphicon-calendar:before {
  content: "\e109";
}

.glyphicon-random:before {
  content: "\e110";
}

.glyphicon-comment:before {
  content: "\e111";
}

.glyphicon-magnet:before {
  content: "\e112";
}

.glyphicon-chevron-up:before {
  content: "\e113";
}

.glyphicon-chevron-down:before {
  content: "\e114";
}

.glyphicon-retweet:before {
  content: "\e115";
}

.glyphicon-shopping-cart:before {
  content: "\e116";
}

.glyphicon-folder-close:before {
  content: "\e117";
}

.glyphicon-folder-open:before {
  content: "\e118";
}

.glyphicon-resize-vertical:before {
  content: "\e119";
}

.glyphicon-resize-horizontal:before {
  content: "\e120";
}

.glyphicon-hdd:before {
  content: "\e121";
}

.glyphicon-bullhorn:before {
  content: "\e122";
}

.glyphicon-bell:before {
  content: "\e123";
}

.glyphicon-certificate:before {
  content: "\e124";
}

.glyphicon-thumbs-up:before {
  content: "\e125";
}

.glyphicon-thumbs-down:before {
  content: "\e126";
}

.glyphicon-hand-right:before {
  content: "\e127";
}

.glyphicon-hand-left:before {
  content: "\e128";
}

.glyphicon-hand-up:before {
  content: "\e129";
}

.glyphicon-hand-down:before {
  content: "\e130";
}

.glyphicon-circle-arrow-right:before {
  content: "\e131";
}

.glyphicon-circle-arrow-left:before {
  content: "\e132";
}

.glyphicon-circle-arrow-up:before {
  content: "\e133";
}

.glyphicon-circle-arrow-down:before {
  content: "\e134";
}

.glyphicon-globe:before {
  content: "\e135";
}

.glyphicon-wrench:before {
  content: "\e136";
}

.glyphicon-tasks:before {
  content: "\e137";
}

.glyphicon-filter:before {
  content: "\e138";
}

.glyphicon-briefcase:before {
  content: "\e139";
}

.glyphicon-fullscreen:before {
  content: "\e140";
}

.glyphicon-dashboard:before {
  content: "\e141";
}

.glyphicon-paperclip:before {
  content: "\e142";
}

.glyphicon-heart-empty:before {
  content: "\e143";
}

.glyphicon-link:before {
  content: "\e144";
}

.glyphicon-phone:before {
  content: "\e145";
}

.glyphicon-pushpin:before {
  content: "\e146";
}

.glyphicon-usd:before {
  content: "\e148";
}

.glyphicon-gbp:before {
  content: "\e149";
}

.glyphicon-sort:before {
  content: "\e150";
}

.glyphicon-sort-by-alphabet:before {
  content: "\e151";
}

.glyphicon-sort-by-alphabet-alt:before {
  content: "\e152";
}

.glyphicon-sort-by-order:before {
  content: "\e153";
}

.glyphicon-sort-by-order-alt:before {
  content: "\e154";
}

.glyphicon-sort-by-attributes:before {
  content: "\e155";
}

.glyphicon-sort-by-attributes-alt:before {
  content: "\e156";
}

.glyphicon-unchecked:before {
  content: "\e157";
}

.glyphicon-expand:before {
  content: "\e158";
}

.glyphicon-collapse-down:before {
  content: "\e159";
}

.glyphicon-collapse-up:before {
  content: "\e160";
}

.glyphicon-log-in:before {
  content: "\e161";
}

.glyphicon-flash:before {
  content: "\e162";
}

.glyphicon-log-out:before {
  content: "\e163";
}

.glyphicon-new-window:before {
  content: "\e164";
}

.glyphicon-record:before {
  content: "\e165";
}

.glyphicon-save:before {
  content: "\e166";
}

.glyphicon-open:before {
  content: "\e167";
}

.glyphicon-saved:before {
  content: "\e168";
}

.glyphicon-import:before {
  content: "\e169";
}

.glyphicon-export:before {
  content: "\e170";
}

.glyphicon-send:before {
  content: "\e171";
}

.glyphicon-floppy-disk:before {
  content: "\e172";
}

.glyphicon-floppy-saved:before {
  content: "\e173";
}

.glyphicon-floppy-remove:before {
  content: "\e174";
}

.glyphicon-floppy-save:before {
  content: "\e175";
}

.glyphicon-floppy-open:before {
  content: "\e176";
}

.glyphicon-credit-card:before {
  content: "\e177";
}

.glyphicon-transfer:before {
  content: "\e178";
}

.glyphicon-cutlery:before {
  content: "\e179";
}

.glyphicon-header:before {
  content: "\e180";
}

.glyphicon-compressed:before {
  content: "\e181";
}

.glyphicon-earphone:before {
  content: "\e182";
}

.glyphicon-phone-alt:before {
  content: "\e183";
}

.glyphicon-tower:before {
  content: "\e184";
}

.glyphicon-stats:before {
  content: "\e185";
}

.glyphicon-sd-video:before {
  content: "\e186";
}

.glyphicon-hd-video:before {
  content: "\e187";
}

.glyphicon-subtitles:before {
  content: "\e188";
}

.glyphicon-sound-stereo:before {
  content: "\e189";
}

.glyphicon-sound-dolby:before {
  content: "\e190";
}

.glyphicon-sound-5-1:before {
  content: "\e191";
}

.glyphicon-sound-6-1:before {
  content: "\e192";
}

.glyphicon-sound-7-1:before {
  content: "\e193";
}

.glyphicon-copyright-mark:before {
  content: "\e194";
}

.glyphicon-registration-mark:before {
  content: "\e195";
}

.glyphicon-cloud-download:before {
  content: "\e197";
}

.glyphicon-cloud-upload:before {
  content: "\e198";
}

.glyphicon-tree-conifer:before {
  content: "\e199";
}

.glyphicon-tree-deciduous:before {
  content: "\e200";
}

.glyphicon-cd:before {
  content: "\e201";
}

.glyphicon-save-file:before {
  content: "\e202";
}

.glyphicon-open-file:before {
  content: "\e203";
}

.glyphicon-level-up:before {
  content: "\e204";
}

.glyphicon-copy:before {
  content: "\e205";
}

.glyphicon-paste:before {
  content: "\e206";
}

.glyphicon-alert:before {
  content: "\e209";
}

.glyphicon-equalizer:before {
  content: "\e210";
}

.glyphicon-king:before {
  content: "\e211";
}

.glyphicon-queen:before {
  content: "\e212";
}

.glyphicon-pawn:before {
  content: "\e213";
}

.glyphicon-bishop:before {
  content: "\e214";
}

.glyphicon-knight:before {
  content: "\e215";
}

.glyphicon-baby-formula:before {
  content: "\e216";
}

.glyphicon-tent:before {
  content: "\26fa";
}

.glyphicon-blackboard:before {
  content: "\e218";
}

.glyphicon-bed:before {
  content: "\e219";
}

.glyphicon-apple:before {
  content: "\f8ff";
}

.glyphicon-erase:before {
  content: "\e221";
}

.glyphicon-hourglass:before {
  content: "\231b";
}

.glyphicon-lamp:before {
  content: "\e223";
}

.glyphicon-duplicate:before {
  content: "\e224";
}

.glyphicon-piggy-bank:before {
  content: "\e225";
}

.glyphicon-scissors:before {
  content: "\e226";
}

.glyphicon-bitcoin:before {
  content: "\e227";
}

.glyphicon-yen:before {
  content: "\00a5";
}

.glyphicon-ruble:before {
  content: "\20bd";
}

.glyphicon-scale:before {
  content: "\e230";
}

.glyphicon-ice-lolly:before {
  content: "\e231";
}

.glyphicon-ice-lolly-tasted:before {
  content: "\e232";
}

.glyphicon-education:before {
  content: "\e233";
}

.glyphicon-option-horizontal:before {
  content: "\e234";
}

.glyphicon-option-vertical:before {
  content: "\e235";
}

.glyphicon-menu-hamburger:before {
  content: "\e236";
}

.glyphicon-modal-window:before {
  content: "\e237";
}

.glyphicon-oil:before {
  content: "\e238";
}

.glyphicon-grain:before {
  content: "\e239";
}

.glyphicon-sunglasses:before {
  content: "\e240";
}

.glyphicon-text-size:before {
  content: "\e241";
}

.glyphicon-text-color:before {
  content: "\e242";
}

.glyphicon-text-background:before {
  content: "\e243";
}

.glyphicon-object-align-top:before {
  content: "\e244";
}

.glyphicon-object-align-bottom:before {
  content: "\e245";
}

.glyphicon-object-align-horizontal:before {
  content: "\e246";
}

.glyphicon-object-align-left:before {
  content: "\e247";
}

.glyphicon-object-align-vertical:before {
  content: "\e248";
}

.glyphicon-object-align-right:before {
  content: "\e249";
}

.glyphicon-triangle-right:before {
  content: "\e250";
}

.glyphicon-triangle-left:before {
  content: "\e251";
}

.glyphicon-triangle-bottom:before {
  content: "\e252";
}

.glyphicon-triangle-top:before {
  content: "\e253";
}

.glyphicon-console:before {
  content: "\e254";
}

.glyphicon-superscript:before {
  content: "\e255";
}

.glyphicon-subscript:before {
  content: "\e256";
}

.glyphicon-menu-left:before {
  content: "\e257";
}

.glyphicon-menu-right:before {
  content: "\e258";
}

.glyphicon-menu-down:before {
  content: "\e259";
}

.glyphicon-menu-up:before {
  content: "\e260";
}

/*  _mixin.scss
    xxx {
        @include box-sizing(50%)  
    }
*/
/* opacity(1.0) == 100% */
/* 1줄 말줄임 */
/* 멀티라인 말줄임 */
/* 텍스트 깨기 */
/* 텍스트 단어별 줄바꿈  */
/* float 영역 유지 */
.monthPicker {
  letter-spacing: -1px;
  width: 280px;
  height: 180px;
  display: none;
  z-index: 10000 !important;
  box-shadow: 0px 0px 25px 0 rgba(0, 0, 0, 0.05), 0px 0px 25px 0 rgba(0, 0, 0, 0.05);
}

.monthPicker a {
  cursor: pointer;
}

.monthPicker span a {
  border: solid 1px  #ebebeb;
  padding: 0 2px;
  height: 20px;
  font-size: 10px;
  color: #bfbfbf;
  text-decoration: none;
}

.monthPicker .year {
  text-align: center;
  padding: 5px 10px;
  height: 50px;
  background-color: #cc0000;
}

.monthPicker .year strong {
  color: #ffffff;
  line-height: 38px;
  font-size: 24px;
  font-weight: 300;
}

.monthPicker .year > span {
  position: absolute;
  top: 13px;
  width: 22px;
  height: 22px;
}

.monthPicker .year > span .changeYear {
  position: relative;
  display: block;
  width: 100%;
  height: 100%;
  margin: 0;
  padding: 0;
  overflow: hidden;
  top: 0;
  left: 0;
  border: 1px solid #cdcdcd;
  border-radius: 2px;
  color: transparent;
  text-indent: -100px;
}

.monthPicker .year > span .changeYear::before {
  content: "";
  display: block;
  width: 6px;
  height: 2px;
  position: absolute;
  top: 8px;
  left: 8px;
  background-color: #cdcdcd;
}

.monthPicker .year > span .changeYear:after {
  content: "";
  display: block;
  width: 6px;
  height: 2px;
  position: absolute;
  top: 12px;
  left: 8px;
  background-color: #cdcdcd;
}

.monthPicker .year > span:first-child {
  left: 20px;
}

.monthPicker .year > span:first-child .changeYear::before {
  -moz-transform: rotate(-45deg);
  -o-transform: rotate(-45deg);
  -ms-transform: rotate(-45deg);
  -webkit-transform: rotate(-45deg);
  transform: rotate(-45deg);
}

.monthPicker .year > span:first-child .changeYear:after {
  -moz-transform: rotate(45deg);
  -o-transform: rotate(45deg);
  -ms-transform: rotate(45deg);
  -webkit-transform: rotate(45deg);
  transform: rotate(45deg);
}

.monthPicker .year > span:last-child {
  right: 20px;
}

.monthPicker .year > span:last-child .changeYear::before {
  -moz-transform: rotate(45deg);
  -o-transform: rotate(45deg);
  -ms-transform: rotate(45deg);
  -webkit-transform: rotate(45deg);
  transform: rotate(45deg);
}

.monthPicker .year > span:last-child .changeYear:after {
  -moz-transform: rotate(-45deg);
  -o-transform: rotate(-45deg);
  -ms-transform: rotate(-45deg);
  -webkit-transform: rotate(-45deg);
  transform: rotate(-45deg);
}

.monthPicker .month-body {
  padding: 15px;
  background-color: #fff;
}

.monthPicker .month-body strong {
  font-size: 14px;
  margin: 0 20px;
}

.monthPicker .month-body ul {
  margin: 0px;
  list-style: none;
}

.monthPicker .month-body ul:after {
  content: "";
  display: block;
  float: none;
  clear: both;
}

.monthPicker .month-body ul li {
  float: left;
}

.monthPicker .month-body ul li a {
  width: 45px;
  padding: 5px;
  text-align: center;
  float: left;
  border: solid 1px  #ccc;
  margin: 2px;
  text-decoration: none;
  color: #666666;
}

.monthPicker .month-body ul li a:hover, .monthPicker .month-body ul li a:focus {
  border: solid 1px #aaa;
  color: #333333;
}

/* =============  jq-Grid ============= */
.table-box {
  position: relative;
  width: 100%;
}

.table-box.scroll_y .ui-jqgrid .ui-jqgrid-bdiv {
  overflow-x: hidden;
}

.ui-jqgrid[id^=gbox_] {
  box-sizing: border-box;
}

.ui-jqgrid[id^=gbox_].ui-widget.ui-widget-content {
  border: 0;
  border-top: 1px solid #ddd;
}

.ui-jqgrid[id^=gbox_] tr.ui-widget-content {
  border-color: #ddd;
}

.ui-jqgrid[id^=gbox_] .ui-widget-content {
  border: 0;
}

.ui-jqgrid[id^=gbox_] .ui-jqgrid-htable, .ui-jqgrid[id^=gbox_] .ui-jqgrid-btable {
  box-sizing: border-box;
  max-width: 100%;
}

.ui-jqgrid[id^=gbox_] .ui-jqgrid-htable .ui-jqgrid-labels, .ui-jqgrid[id^=gbox_] .ui-jqgrid-htable .ui-widget-content, .ui-jqgrid[id^=gbox_] .ui-jqgrid-btable .ui-jqgrid-labels, .ui-jqgrid[id^=gbox_] .ui-jqgrid-btable .ui-widget-content {
  overflow: hidden;
}

.ui-jqgrid[id^=gbox_] .ui-jqgrid-htable th, .ui-jqgrid[id^=gbox_] .ui-jqgrid-htable td, .ui-jqgrid[id^=gbox_] .ui-jqgrid-btable th, .ui-jqgrid[id^=gbox_] .ui-jqgrid-btable td {
  height: 30px;
  padding: 0 2px 0 2px;
}

.ui-jqgrid[id^=gbox_] .ui-jqgrid-hdiv .ui-jqgrid-htable th {
  background-color: #f6f6f6;
}

.ui-jqgrid[id^=gbox_] .ui-jqgrid-bdiv > div {
  overflow: hidden;
}

.ui-jqgrid[id^=gbox_] .ui-jqgrid-bdiv .ui-jqgrid-btable tr.ui-row-ltr td {
  text-align: center;
}

.ui-jqgrid[id^=gbox_] .ui-jqgrid-pager {
  border-top: 0;
  border-bottom: 1px solid #ddd !important;
  height: auto;
}

.ui-jqgrid[id^=gbox_] .ui-jqgrid-pager .ui-pg-table td {
  height: 30px;
  padding: 0px;
  border: 1px solid transparent;
}

.ui-jqgrid[id^=gbox_] .ui-jqgrid-pager .ui-pg-table td input[type="text"] {
  width: auto;
}

/* header.scss */
#header .navbar {
  justify-content: space-between;
  height: 70px;
}

#header .navbar-brand {
  font-weight: 700;
  font-size: 20px;
  letter-spacing: -0.5px;
  color: #66b17e !important;
}

#header .other_menu {
  float: right;
}

#header .nav-link {
  font-size: 22px;
  padding: 0;
  color: #ccc !important;
  line-height: 1;
}

#header .nav-link:hover {
  color: #fff !important;
}

#header .other_menu .dropdown .dropdown-menu {
  left: auto;
  right: 0;
  background-color: #2a2e32;
  border: 1px solid #444;
  border-radius: 10px;
  padding: 6px 0;
  min-width: 160px;
  box-shadow: 0 4px 16px rgba(0,0,0,0.4);
}

#header .dropdown-item {
  color: #ccc;
  padding: 9px 16px;
  font-size: 13px;
  display: flex;
  align-items: center;
  gap: 9px;
}

#header .dropdown-item i {
  font-size: 14px;
  width: 16px;
  text-align: center;
  opacity: 0.8;
}

#header .dropdown-item:hover {
  background-color: #343a40;
  color: #fff;
}

#header .dropdown-item:hover i {
  opacity: 1;
}

#header .dropdown-item.active {
  background-color: transparent;
  color: #54ad70;
  font-weight: 600;
}

#header .dropdown-item.active i {
  opacity: 1;
}

#header .dropdown-divider {
  border-top-color: #444;
  margin: 4px 0;
}

#header .dropdown-header {
  color: #66b17e;
  font-size: 11px;
  font-weight: 700;
  letter-spacing: 0.5px;
  text-transform: uppercase;
  padding: 6px 16px 4px;
}

/* admin member */
.admin-search-bar {
  background-color: #343a40;
  border: 1px solid #454d55;
  border-radius: 10px;
  padding: 14px 16px;
}

.admin-search-row {
  display: flex;
  gap: 8px;
  align-items: center;
}

.admin-search-input {
  flex: 1;
  min-width: 160px;
  background-color: #2a2e32;
  border: 1px solid #444;
  border-radius: 6px;
  color: #ccc;
  padding: 7px 12px;
  font-size: 13px;
}

.admin-search-input::placeholder {
  color: #666;
}

.admin-search-input:focus {
  outline: none;
  border-color: #66b17e;
  color: #fff;
}

.admin-search-select {
  background-color: #2a2e32;
  border: 1px solid #444;
  border-radius: 6px;
  color: #ccc;
  padding: 7px 10px;
  font-size: 13px;
  max-width: 100%;
}

.admin-search-select:focus {
  outline: none;
  border-color: #66b17e;
}

.admin-search-btn {
  background-color: #66b17e;
  border: none;
  border-radius: 6px;
  color: #fff;
  padding: 7px 16px;
  font-size: 13px;
  cursor: pointer;
  white-space: nowrap;
}

.admin-search-btn:hover {
  background-color: #559a6c;
}

.admin-search-btn.btn-danger-outline {
  background-color: transparent;
  border: 1px solid #dc3545;
  color: #dc3545;
}

.admin-search-btn.btn-danger-outline:hover {
  background-color: #dc3545;
  color: #fff;
}

.member-list {
  display: flex;
  flex-direction: column;
  gap: 8px;
}

.member-card {
  background-color: #343a40;
  border: 1px solid #454d55;
  border-radius: 10px;
  padding: 14px 16px;
}

.member-card-top {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 10px;
  margin-bottom: 8px;
}

.member-email {
  font-size: 14px;
  color: #ddd;
  word-break: break-all;
}

.member-date {
  font-size: 12px;
  color: #888;
  white-space: nowrap;
  flex-shrink: 0;
}

.member-card-bottom {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 10px;
}

.member-meta {
  display: flex;
  align-items: center;
  flex-wrap: wrap;
  gap: 6px;
}

.member-card-actions {
  display: flex;
  align-items: center;
  gap: 8px;
  flex-shrink: 0;
}

.sns-badge {
  display: inline-flex;
  align-items: center;
  gap: 5px;
  font-size: 12px;
  font-weight: 600;
  padding: 3px 9px;
  border-radius: 20px;
}

.sns-badge img {
  flex-shrink: 0;
}

.sns-google { background-color: #fff;    color: #3c4043; border: 1px solid #dadce0; }
.sns-naver  { background-color: #03c75a; color: #fff; }
.sns-kakao  { background-color: #fee500; color: #191919; }

.badge-role {
  display: inline-block;
  font-size: 11px;
  font-weight: 700;
  padding: 3px 8px;
  border-radius: 4px;
}

.badge-role-admin  { color: #f9c74f; background-color: rgba(249,199,79,0.15); }
.badge-role-member { color: #888;    background-color: rgba(136,136,136,0.15); }

.btn-admin-action {
  font-size: 12px;
  padding: 5px 12px;
  border-radius: 4px;
  border: 1px solid;
  cursor: pointer;
  background: transparent;
  white-space: nowrap;
}

.btn-withdrawal-sm {
  background: transparent;
  border: none;
  color: #c0392b;
  font-size: 18px;
  cursor: pointer;
  padding: 0 2px;
  line-height: 1;
}

.btn-withdrawal-sm:active {
  color: #e74c3c;
}

.role-toggle-wrap {
  display: flex;
  align-items: center;
  gap: 7px;
  margin-bottom: 0;
  cursor: pointer;
}

.role-toggle-label {
  font-size: 11px;
  font-weight: 700;
  color: #888;
}

.role-toggle {
  position: relative;
  display: inline-block;
  width: 44px;
  height: 24px;
  flex-shrink: 0;
}

.role-toggle input {
  opacity: 0;
  width: 0;
  height: 0;
}

.role-toggle-slider {
  position: absolute;
  cursor: pointer;
  top: 0; left: 0; right: 0; bottom: 0;
  background-color: #555;
  border-radius: 24px;
  transition: 0.2s;
}

.role-toggle-slider:before {
  position: absolute;
  content: "";
  height: 18px;
  width: 18px;
  left: 3px;
  bottom: 3px;
  background-color: #fff;
  border-radius: 50%;
  transition: 0.2s;
}

.role-toggle input:checked + .role-toggle-slider {
  background-color: #28a745;
}

.role-toggle input:checked + .role-toggle-slider:before {
  transform: translateX(20px);
}

/* footer.scss */
#footer {
  border-top: 1px solid #303030;
}

#footer .footer-links {
  padding: 20px 20px 0;
  text-align: center;
}

#footer .footer-link {
  font-size: 12px;
  color: #888;
  text-decoration: none;
}

#footer .footer-link:hover {
  color: #aaa;
  text-decoration: underline;
}

#footer .copy {
  padding: 10px 20px 24px;
  font-size: 12px;
  text-align: center;
  color: #555;
}

/* policy */
.policy-updated {
  font-size: 12px;
  color: #777;
  margin-bottom: 16px;
}

.policy-card {
  background-color: #343a40;
  border-radius: 12px;
  padding: 16px 18px;
  margin-bottom: 10px;
}

.policy-section-title {
  font-size: 13px;
  font-weight: 600;
  color: #ccc;
  margin-bottom: 10px;
  padding-bottom: 8px;
  border-bottom: 1px solid #454d55;
}

.policy-text {
  font-size: 13px;
  color: #999;
  line-height: 1.7;
  margin: 0;
}

.policy-list {
  font-size: 13px;
  color: #999;
  line-height: 1.7;
  padding-left: 18px;
  margin: 0;
}

#footer .scroll_top {
  display: none;
  position: absolute;
  bottom: 50px;
  left: 50%;
  width: 55px;
  height: 55px;
  margin: 0 0 0 540px;
  cursor: pointer;
  z-index: 100;
}

#footer .scroll_top a {
  position: relative;
  display: block;
  width: 55px;
  height: 55px;
  background-color: #fff;
  border-radius: 50%;
  font-size: 12px;
  font-weight: bold;
  color: #000;
  border: 1px solid #efefef;
  box-shadow: 5px 5px 5px rgba(0, 0, 0, 0.05);
}

#footer .scroll_top a:after {
  content: "^";
  display: inline-block;
  position: absolute;
  top: 10px;
  left: 23px;
}

#footer .scroll_top a span {
  display: block;
  position: absolute;
  top: 22px;
  width: 100%;
  text-align: center;
}

.alert-wrap {
  position: absolute;
  top: 0;
  bottom: 0;
  left: 0;
  right: 0;
  padding: 0 15px;
}

.alert-wrap .alert-panel {
  display: flex;
  height: 100%;
  min-height: 500px;
  justify-content: center;
  align-items: center;
}

.alert-wrap .alert-panel .alert-inner {
  width: 100%;
  max-width: 500px;
}

.alert-wrap .alert-header {
  text-align: center;
}

.alert-wrap .alert-header .alert-icon {
  margin-top: 2rem;
  font-size: 5rem;
}

.alert-wrap .alert-body .txt_big {
  text-align: center;
  font-size: 1.5rem;
}

.alert-wrap .alert-body .txt_sma {
  margin-top: 1rem;
  text-align: center;
  font-size: .8rem;
}

.alert-wrap .alert-footer .form-group {
  margin-top: 2rem;
}

/* =====================  loading =====================*/
.page_loading {
  display: none;
  position: fixed;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  min-height: 100%;
  z-index: 999999;
  overflow-x: hidden;
  overflow-y: hidden;
  background-color: rgba(0, 0, 0, 0.7);
}

.page_loading .center_teable {
  display: table;
  table-layout: fixed;
  width: 100%;
  height: 100%;
}

.page_loading .center_center {
  display: table-cell;
  width: 100%;
  padding: 20px 0;
  text-align: center;
  vertical-align: middle;
}

.page_loading .center_center .img {
  display: inline-block;
  padding: 30px;
  border-radius: 50%;
  font-size: 0;
  line-height: 0;
}

/* //=====================  loading =====================*/
body {
  overflow-y: scroll;
}

.wrapper[data-pop="on"] {
  width: 100%;
}

.wrapper #contents {
  position: relative;
  min-height: calc( 100vh - 170px);
}

.wrapper .form-control:disabled, .wrapper .form-control[readonly] {
  background-color: #adb5bd;
}

.wrapper .form-group {
  margin-bottom: 0;
}

.wrapper .form-group + .form-group {
  margin-top: 1rem;
}

.wrapper .login-wrap {
  min-height: 100vh;
  display: flex;
  align-items: center;
}

.wrapper .login-wrap > .inner {
  width: 100%;
  max-width: 420px;
  margin: 0 auto;
  padding: 20px 16px 40px;
}

.wrapper .login-wrap .login-card {
  background-color: #1e1e1e;
  border: 1px solid #3a3a3a;
  border-radius: 12px;
  padding: 40px 36px;
  text-align: center;
}

.wrapper .login-wrap .login-card .logo-area {
  margin-bottom: 8px;
}

.wrapper .login-wrap .login-card .logo-area h3 {
  font-size: 28px;
  font-weight: 700;
  color: #fff;
  margin: 0;
  letter-spacing: -0.5px;
}

.wrapper .login-wrap .login-card .desc {
  color: #999;
  font-size: 13px;
  line-height: 1.6;
  margin: 12px 0 28px;
  word-break: keep-all;
}

.wrapper .login-wrap .login-card .divider {
  border: none;
  border-top: 1px solid #3a3a3a;
  margin: 0 0 24px;
}

.wrapper .login-wrap .btn-google {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 10px;
  width: 100%;
  padding: 12px 16px;
  background-color: #fff;
  color: #3c4043;
  border: 1px solid #dadce0;
  border-radius: 6px;
  font-size: 15px;
  font-weight: 500;
  text-decoration: none;
  transition: background-color 0.15s, box-shadow 0.15s;
  cursor: pointer;
}

.wrapper .login-wrap .btn-google:hover {
  background-color: #f8f9fa;
  box-shadow: 0 2px 6px rgba(0,0,0,0.3);
  text-decoration: none;
  color: #3c4043;
}

.wrapper .login-wrap .btn-google img {
  flex-shrink: 0;
}

.wrapper .login-wrap .btn-naver {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 10px;
  width: 100%;
  padding: 12px 16px;
  background-color: #03C75A;
  color: #fff;
  border: 1px solid #03C75A;
  border-radius: 6px;
  font-size: 15px;
  font-weight: 500;
  text-decoration: none;
  transition: background-color 0.15s, box-shadow 0.15s;
  cursor: pointer;
}

.wrapper .login-wrap .btn-naver:hover {
  background-color: #02b351;
  box-shadow: 0 2px 6px rgba(0,0,0,0.3);
  text-decoration: none;
  color: #fff;
}

.wrapper .login-wrap .btn-naver img {
  flex-shrink: 0;
}

.wrapper .login-wrap .btn-kakao {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 10px;
  width: 100%;
  padding: 12px 16px;
  background-color: #FEE500;
  color: #191919;
  border: 1px solid #FEE500;
  border-radius: 6px;
  font-size: 15px;
  font-weight: 500;
  text-decoration: none;
  transition: background-color 0.15s, box-shadow 0.15s;
  cursor: pointer;
}

.wrapper .login-wrap .btn-kakao:hover {
  background-color: #f5dc00;
  box-shadow: 0 2px 6px rgba(0,0,0,0.2);
  text-decoration: none;
  color: #191919;
}

.wrapper .login-wrap .btn-kakao img {
  flex-shrink: 0;
}

.wrapper .login-wrap .sns-login-area {
  display: flex;
  flex-direction: column;
  gap: 10px;
}

.wrapper .login-wrap .login-card .error-msg {
  margin-top: 16px;
  font-size: 13px;
  color: #f24848;
}

.receive-disclaimer {
  font-size: 11px;
  color: #999;
  line-height: 1.6;
  margin-bottom: 16px;
}

.wrapper .login-wrap .info_link {
  display: block;
  text-align: center;
}

.wrapper .login-footer {
  position: fixed;
  bottom: 16px;
  left: 0;
  right: 0;
  text-align: center;
}
.wrapper .login-footer a {
  font-size: 12px;
  color: #666;
}

.wrapper .join-wrap > .inner {
  max-width: 500px;
  padding: 40px 0;
  margin: 0 auto;
}

.wrapper .join-wrap .info-area {
  padding: 30px;
  background-color: #303030;
}

.wrapper .join-wrap .info-area p {
  margin: 0;
  word-break: keep-all;
}

.wrapper .edit-wrap > .inner {
  padding: 40px 0;
  margin: 0 auto;
}

/* 회원정보 */
.wrapper .member-info-card {
  background-color: #343a40;
  border: 1px solid #454d55;
  border-radius: 12px;
  overflow: hidden;
}

.wrapper .member-profile-area {
  padding: 28px 24px;
  display: flex;
  align-items: center;
  gap: 20px;
}

.wrapper .member-avatar {
  width: 52px;
  height: 52px;
  border-radius: 50%;
  background-color: #54ad70;
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 20px;
  font-weight: 700;
  color: #fff;
  flex-shrink: 0;
  text-transform: uppercase;
}

.wrapper .member-info-rows {
  flex: 1;
  display: flex;
  flex-direction: column;
  gap: 10px;
}

.wrapper .member-info-row {
  display: flex;
  align-items: center;
  gap: 12px;
}

.wrapper .member-info-row .info-label {
  font-size: 12px;
  color: #777;
  width: 40px;
  flex-shrink: 0;
}

.wrapper .member-info-row .info-value {
  font-size: 14px;
  color: #e0e0e0;
  word-break: break-all;
}

.wrapper .sns-badge {
  display: inline-flex;
  align-items: center;
  gap: 5px;
  padding: 3px 10px;
  border-radius: 20px;
  font-size: 12px;
  font-weight: 600;
}

.wrapper .sns-google {
  background-color: #fff;
  color: #3c4043;
  border: 1px solid #dadce0;
}

.wrapper .sns-naver {
  background-color: #03C75A;
  color: #fff;
}

.wrapper .sns-kakao {
  background-color: #FEE500;
  color: #191919;
}

.wrapper .member-withdrawal-area {
  border-top: 1px solid #454d55;
  padding: 16px 24px;
  background-color: rgba(255, 255, 255, 0.02);
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 10px;
  text-align: center;
}

.wrapper .withdrawal-desc {
  font-size: 12px;
  color: #c47a50;
  line-height: 1.6;
  margin: 0;
}

.wrapper .btn-withdrawal {
  background-color: #f07800;
  border: none;
  color: #fff;
  border-radius: 6px;
  padding: 7px 20px;
  font-size: 13px;
  font-weight: 500;
  cursor: pointer;
  transition: background-color 0.15s;
}

.wrapper .btn-withdrawal:hover {
  background-color: #d06600;
}

/* 알림 내역 */
.wrapper .push-notice-txt {
  font-size: 11px;
  color: #666;
  margin-bottom: 10px;
}
.wrapper .push-notice-txt .bi {
  font-size: 10px;
}

.wrapper .push-tab-group {
  display: flex;
  flex-wrap: wrap;
  gap: 6px;
}

.wrapper .push-tab {
  display: inline-flex;
  align-items: center;
  padding: 5px 14px;
  border-radius: 20px;
  font-size: 13px;
  color: #aaa;
  background-color: #2c3036;
  border: 1px solid #454d55;
  cursor: pointer;
  transition: all 0.15s;
}

.wrapper .push-tab input[type="radio"] {
  display: none;
}

.wrapper .push-tab.active,
.wrapper .push-tab:hover {
  background-color: #54ad70;
  border-color: #54ad70;
  color: #fff;
}

.wrapper .push-list {
  display: flex;
  flex-direction: column;
  gap: 8px;
}

.wrapper .push-item {
  display: block;
  background-color: #343a40;
  border: 1px solid #454d55;
  border-radius: 10px;
  padding: 14px 16px;
  text-decoration: none;
  transition: border-color 0.15s;
}

.wrapper .push-item:hover {
  border-color: #007aff;
  text-decoration: none;
}

.wrapper .push-item-meta {
  display: flex;
  align-items: center;
  justify-content: space-between;
  margin-bottom: 6px;
}

.wrapper .push-badge-group {
  display: flex;
  gap: 4px;
}

.wrapper .push-board-badge {
  font-size: 11px;
  color: #fff;
  background-color: #454d55;
  border-radius: 4px;
  padding: 2px 7px;
  text-transform: uppercase;
}

.wrapper .push-trigger-badge {
  font-size: 11px;
  color: #fff;
  border-radius: 4px;
  padding: 2px 7px;
}

.wrapper .push-trigger-keyword {
  background-color: #2e7d32;
}

.wrapper .push-trigger-comment {
  background-color: #1a6b9a;
}

.wrapper .push-meta-right {
  display: flex;
  align-items: center;
  gap: 6px;
}

.wrapper .push-comment {
  font-size: 11px;
  color: #ccc;
}

.wrapper .empty-txt {
  padding: 40px 0;
  text-align: center;
  font-size: 14px;
  color: #777;
}

/* 키워드 하이라이팅 커스텀 색상 */
.text-kw-green  { color: #00ff7e !important; }
.text-kw-yellow { color: #ffd800 !important; }
.text-kw-cyan   { color: #3fd5e7 !important; }
.text-kw-purple { color: #c17fff !important; }

/* 서버 점검 안내 */
.wrapper .server-down-wrap {
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  min-height: 100vh;
  text-align: center;
}
.wrapper .server-down-icon {
  font-size: 48px;
  color: #ee7a56;
  margin-bottom: 16px;
}
.wrapper .server-down-title {
  font-size: 20px;
  font-weight: 700;
  color: #e0e0e0;
  margin-bottom: 8px;
}
.wrapper .server-down-desc {
  font-size: 13px;
  color: #777;
}
.wrapper .server-down-notice {
  margin-top: 24px;
  padding-top: 20px;
  border-top: 1px solid #444;
  font-size: 12px;
  color: #999;
}

/* 앱 전용 안내 */
.wrapper .app-only-wrap {
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  padding: 60px 20px;
  text-align: center;
}
.wrapper .app-only-icon {
  font-size: 48px;
  color: #007aff;
  margin-bottom: 16px;
}
.wrapper .app-only-title {
  font-size: 18px;
  font-weight: 700;
  color: #e0e0e0;
  margin-bottom: 8px;
}
.wrapper .app-only-desc {
  font-size: 13px;
  color: #777;
  margin-bottom: 24px;
}
.wrapper .app-only-btn {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  padding: 10px 20px;
  font-size: 14px;
  font-weight: 600;
  border-radius: 8px;
}

.wrapper .push-date {
  font-size: 11px;
  color: #777;
}

.wrapper .push-item-title-row {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 8px;
}

.wrapper .push-item-title-row .push-comment {
  flex-shrink: 0;
  margin-top: 2px;
}

.wrapper .push-item-title {
  font-size: 13px;
  color: #e0e0e0;
  line-height: 1.5;
  word-break: break-all;
}

/* 페이지 타이틀 */
.wrapper .page-title {
  font-size: 16px;
  font-weight: 600;
  color: #e0e0e0;
  margin-bottom: 16px;
}

/* 키워드 관리 */
.wrapper .keyword-card {
  background-color: #343a40;
  border: 1px solid #454d55;
  border-radius: 12px;
  overflow: hidden;
}

.wrapper .keyword-board-area {
  padding: 24px;
}

.wrapper .keyword-card + .keyword-card {
  margin-top: 16px;
}

.wrapper .keyword-board-header {
  display: flex;
  align-items: center;
  justify-content: space-between;
  margin-bottom: 16px;
}

.wrapper .keyword-board-title {
  font-size: 15px;
  font-weight: 600;
  color: #e0e0e0;
}

.wrapper .keyword-board-actions {
  display: flex;
  align-items: center;
  gap: 14px;
}

.wrapper .keyword-add-btn {
  color: #2e7d45;
  font-size: 15px;
  text-decoration: none;
  -webkit-text-stroke: 1px #2e7d45;
}

.wrapper .keyword-add-btn:hover {
  color: #3d9458;
}

.wrapper .keyword-tags {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
  align-items: flex-start;
}

.wrapper .keyword-tag {
  display: inline-flex;
  align-items: center;
  background-color: #2e7d45;
  color: #fff;
  border-radius: 20px;
  padding: 5px 13px;
  font-size: 13px;
}


.wrapper .keyword-tag-threshold {
  font-size: 10px;
  background-color: rgba(255,255,255,0.2);
  border-radius: 10px;
  padding: 1px 5px;
  margin-left: 5px;
  white-space: nowrap;
}

.wrapper .keyword-tag-new {
  animation: keyword-highlight 1s ease 0s 2;
}
@keyframes keyword-highlight {
  0%   { background-color: #2e7d45; }
  50%  { background-color: #353a40; }
  100% { background-color: #2e7d45; }
}

.wrapper .keyword-empty {
  font-size: 13px;
  color: #777;
  padding: 4px 0;
  cursor: pointer;
}

.wrapper .keyword-site-header {
  display: flex;
  align-items: center;
  gap: 10px;
  margin-bottom: 8px;
}

.wrapper .keyword-site-title {
  font-size: 14px;
  font-weight: 600;
  color: #e0e0e0;
}

.wrapper .keyword-limit-desc {
  font-size: 11px;
  color: #999;
  line-height: 1.6;
  margin-bottom: 8px;
}
.wrapper details.keyword-limit-desc > summary { cursor: pointer; user-select: none; }
.wrapper details.keyword-limit-desc .hint-chevron::before { content: '▶'; font-size: 9px; margin-right: 3px; }
.wrapper details.keyword-limit-desc[open] .hint-chevron::before { content: '▼'; }

.wrapper .keyword-edit-btn {
  color: #666;
  font-size: 13px;
  cursor: pointer;
}

.wrapper .keyword-edit-btn:hover {
  color: #ccc;
}


.wrapper .keyword-delete-btn {
  display: none;
  background-color: #dc3545;
  border: 1px solid #dc3545;
  color: #fff;
  border-radius: 20px;
  padding: 2px 10px;
  font-size: 12px;
  cursor: pointer;
  line-height: 1.6;
  outline: none;
}

.wrapper .keyword-delete-btn:hover,
.wrapper .keyword-delete-btn:focus {
  background-color: #c82333;
  border-color: #c82333;
  outline: none;
}

.wrapper .keyword-edit-done-btn {
  display: none;
  background-color: transparent;
  border: 1px solid #666;
  color: #adb5bd;
  border-radius: 20px;
  padding: 2px 10px;
  font-size: 12px;
  cursor: pointer;
  line-height: 1.6;
}

@keyframes keyword-wiggle {
  0%   { transform: rotate(-2.5deg); }
  50%  { transform: rotate(2.5deg); }
  100% { transform: rotate(-2.5deg); }
}

.wrapper .keyword-card.edit-mode .keyword-tag {
  cursor: pointer;
  border: 1px dashed rgba(255,255,255,0.3);
  padding-right: 13px;
  animation: keyword-wiggle 0.18s infinite;
  transform-origin: center bottom;
  position: relative;
}

.wrapper .keyword-card.edit-mode .keyword-tag::before {
  content: "";
  position: absolute;
  top: -5px;
  left: -4px;
  width: 13px;
  height: 13px;
  border-radius: 50%;
  border: 1.5px solid rgba(255,255,255,0.6);
  background-color: rgba(0,0,0,0.25);
  box-sizing: border-box;
}


.wrapper .keyword-card.edit-mode .keyword-tag:hover {
  border-color: rgba(255,255,255,0.6);
  animation-play-state: paused;
}

.wrapper .keyword-tag.selected {
  background-color: #dc3545;
  border-color: #ff6b7a !important;
}

.wrapper .keyword-card.edit-mode .keyword-tag.selected {
  animation: none;
}

.wrapper .keyword-card.edit-mode .keyword-tag.selected::before {
  content: "×";
  background-color: #dc3545;
  border-color: #dc3545;
  color: #fff;
  font-size: 11px;
  font-weight: 700;
  display: flex;
  align-items: center;
  justify-content: center;
  box-shadow: none;
}


.wrapper .edit-wrap fieldset {
  position: relative;
}

.wrapper .edit-wrap fieldset .label {
  display: inline-block;
  margin-bottom: 0.5rem;
}

.wrapper .edit-wrap fieldset .check_notice {
  position: absolute;
  text-outline: 10px;
  right: 0;
}

.wrapper .edit-wrap fieldset .text-warning {
  margin-bottom: 0;
}

.wrapper .table-bordered {
  table-layout: fixed;
}

.wrapper .table-bordered .ell {
  overflow: hidden;
  white-space: nowrap;
  text-overflow: ellipsis;
}

.wrapper .table-bordered .data-empty {
  border: 0;
}

.wrapper .page-area {
  text-align: center;
}

.wrapper .page-item.active .page-link {
  background-color: #54ad70 !important;
  border-color: #54ad70 !important;
}

.wrapper .page-area > .inner {
  display: inline-block;
}

.wrapper .pagination {
  gap: 2px;
  margin: 0;
}
.wrapper .pagination .page-item .page-link {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 34px;
  height: 34px;
  border-radius: 50%;
  border: none;
  background: transparent;
  color: #888;
  font-size: 14px;
  padding: 0;
  line-height: 1;
  box-shadow: none;
}
.wrapper .pagination .page-item.active .page-link {
  background: #007aff;
  color: #fff;
  font-weight: 600;
}
.wrapper .pagination .page-item.disabled .page-link {
  color: #ccc;
}
.wrapper .pagination .page-item:not(.active):not(.disabled) .page-link:hover {
  background: #f0f0f0;
  color: #222;
}

/* 캐시 관리 */
.wrapper .cache-list {
  display: flex;
  flex-direction: column;
  gap: 12px;
}

.wrapper .cache-card {
  background-color: #343a40;
  border: 1px solid #444;
  border-radius: 10px;
  padding: 16px 20px;
}

.wrapper .cache-card-body {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
}

.wrapper .cache-info {
  display: flex;
  flex-direction: column;
  gap: 4px;
}

.wrapper .cache-name {
  font-size: 13px;
  font-weight: 600;
  color: #e0e0e0;
  font-family: monospace;
}

.wrapper .cache-desc {
  font-size: 12px;
  color: #888;
}

.wrapper .cache-stat {
  font-size: 12px;
  color: #aaa;
}

.wrapper .cache-stat strong {
  color: #007aff;
}

.wrapper .cache-actions {
  display: flex;
  align-items: center;
  gap: 8px;
}

.wrapper .cache-input {
  width: 64px;
  padding: 5px 8px;
  font-size: 13px;
  border-radius: 6px;
  border: 1px solid #555;
  background: #2a2e32;
  color: #e0e0e0;
  text-align: center;
}

.wrapper .cache-input:focus {
  outline: none;
  border-color: #007aff;
}

.wrapper .btn-cache-clear {
  flex-shrink: 0;
  padding: 6px 14px;
  font-size: 12px;
  border-radius: 6px;
  border: 1px solid #007aff;
  background: #007aff;
  color: #fff;
  cursor: pointer;
  transition: all 0.15s;
}

.wrapper .btn-cache-clear:hover {
  background: #005ec4;
  border-color: #005ec4;
}

.wrapper .cache-section-title {
  font-size: 14px;
  font-weight: 600;
  color: #aaa;
  margin: 20px 0 8px;
  padding-bottom: 6px;
  border-bottom: 1px solid #444;
}

.wrapper .cache-member-add {
  display: flex;
  align-items: center;
  gap: 8px;
  margin-bottom: 12px;
  flex-wrap: wrap;
}

.wrapper .cache-input-email {
  flex: 1;
  min-width: 180px;
  padding: 6px 10px;
  font-size: 13px;
  border-radius: 6px;
  border: 1px solid #555;
  background: #2a2e32;
  color: #e0e0e0;
}

.wrapper .cache-input-email:focus {
  outline: none;
  border-color: #007aff;
}

.wrapper .cache-input-num {
  width: 90px;
  padding: 6px 8px;
  font-size: 13px;
  border-radius: 6px;
  border: 1px solid #555;
  background: #2a2e32;
  color: #e0e0e0;
  text-align: center;
}

.wrapper .cache-input-num:focus {
  outline: none;
  border-color: #007aff;
}

.wrapper .cache-member-table {
  width: 100%;
  border-collapse: collapse;
  font-size: 13px;
  color: #e0e0e0;
}

.wrapper .cache-member-table thead th {
  padding: 8px 10px;
  text-align: left;
  color: #888;
  border-bottom: 1px solid #444;
  font-weight: 500;
}

.wrapper .cache-member-table tbody td {
  padding: 8px 10px;
  border-bottom: 1px solid #3a3a3a;
  vertical-align: middle;
}

.wrapper .cache-member-table tbody tr:last-child td {
  border-bottom: none;
}

.wrapper .btn-cache-sm {
  padding: 4px 10px;
  font-size: 12px;
  border-radius: 5px;
  border: 1px solid #007aff;
  background: transparent;
  color: #007aff;
  cursor: pointer;
  transition: all 0.15s;
  margin-right: 4px;
}

.wrapper .btn-cache-sm:hover {
  background: #007aff;
  color: #fff;
}

.wrapper .btn-cache-sm._btnMemberDelete {
  border-color: #dc3545;
  color: #dc3545;
}

.wrapper .btn-cache-sm._btnMemberDelete:hover {
  background: #dc3545;
  color: #fff;
}

.wrapper .cache-empty {
  font-size: 13px;
  color: #666;
  padding: 12px 0;
}

/* 공통코드 관리 */
.wrapper .admin-code-header {
  display: flex;
  align-items: center;
  justify-content: space-between;
}

.wrapper .code-group-card {
  background-color: #343a40;
  border: 1px solid #444;
  border-radius: 10px;
  overflow: hidden;
}

.wrapper .code-group-header {
  display: flex;
  align-items: center;
  gap: 10px;
  padding: 12px 16px;
  background-color: #2a2e32;
  border-bottom: 1px solid #444;
}

.wrapper .code-group-cd {
  font-size: 13px;
  font-weight: 600;
  color: #007aff;
  font-family: monospace;
}

.wrapper .code-group-nm {
  font-size: 13px;
  color: #e0e0e0;
}

.wrapper .code-group-desc {
  font-size: 12px;
  color: #888;
}

.wrapper .code-group-body {
  padding: 12px 16px;
  overflow-x: auto;
}

.wrapper .code-table {
  width: 100%;
  border-collapse: collapse;
  font-size: 13px;
}

.wrapper .code-table th {
  padding: 8px 10px;
  color: #aaa;
  font-weight: 500;
  border-bottom: 1px solid #444;
  text-align: left;
}

.wrapper .code-table td {
  padding: 8px 10px;
  border-bottom: 1px solid #3a3e42;
  color: #e0e0e0;
}

.wrapper .code-table tr:last-child td {
  border-bottom: none;
}

.wrapper .code-fixed {
  font-family: monospace;
  color: #aaa;
}

.wrapper .code-input {
  width: 100%;
  padding: 5px 8px;
  font-size: 13px;
  border-radius: 6px;
  border: 1px solid #555;
  background: #2a2e32;
  color: #e0e0e0;
}

.wrapper .code-input:focus {
  outline: none;
  border-color: #007aff;
}

.wrapper .code-input[readonly] {
  border-color: transparent;
  background: transparent;
  color: #ddd;
  cursor: default;
  pointer-events: none;
}

.wrapper .code-select {
  padding: 5px 8px;
  font-size: 13px;
  border-radius: 6px;
  border: 1px solid #555;
  background: #2a2e32;
  color: #e0e0e0;
}

.wrapper .code-select[disabled] {
  border-color: transparent;
  background: transparent;
  color: #ddd;
  -webkit-appearance: none;
  appearance: none;
  opacity: 1;
  pointer-events: none;
}

.wrapper .code-toggle {
  position: relative;
  display: inline-block;
  width: 38px;
  height: 20px;
  margin: 0;
  vertical-align: middle;
}
.wrapper .code-toggle input {
  opacity: 0;
  width: 0;
  height: 0;
}
.wrapper .code-toggle-slider {
  position: absolute;
  cursor: pointer;
  top: 0; left: 0; right: 0; bottom: 0;
  background-color: #555;
  border-radius: 20px;
  transition: background-color 0.2s;
}
.wrapper .code-toggle-slider:before {
  content: "";
  position: absolute;
  width: 14px;
  height: 14px;
  left: 3px;
  bottom: 3px;
  background-color: #fff;
  border-radius: 50%;
  transition: transform 0.2s;
}
.wrapper .code-toggle input:checked + .code-toggle-slider {
  background-color: #28a745;
}
.wrapper .code-toggle input:checked + .code-toggle-slider:before {
  transform: translateX(18px);
}
.wrapper .code-toggle input:disabled + .code-toggle-slider {
  cursor: default;
  opacity: 0.6;
}

.wrapper .code-drag-check-cell {
  text-align: center;
  white-space: nowrap;
}

.wrapper .code-drag-handle {
  color: #666;
  cursor: grab;
  font-size: 18px;
  display: inline-block;
}

.wrapper .code-drag-handle:active {
  cursor: grabbing;
}

.wrapper .code-check-mark {
  color: #555;
  font-size: 16px;
  display: inline-block;
}

.wrapper tbody tr.code-row-selected .code-check-mark {
  color: #007aff;
}

.wrapper .code-code-label {
  font-size: 13px;
  color: #ccc;
  white-space: nowrap;
}

.wrapper .btn-code-add {
  padding: 6px 14px;
  font-size: 13px;
  border-radius: 6px;
  border: 1px dashed #555;
  background: transparent;
  color: #aaa;
  cursor: pointer;
  transition: all 0.15s;
}

.wrapper .btn-code-add:hover {
  border-color: #007aff;
  color: #007aff;
}

.wrapper .code-add-area-row {
  display: flex;
  align-items: center;
  justify-content: space-between;
}

.wrapper .code-edit-actions {
  display: flex;
  align-items: center;
  gap: 12px;
}

.wrapper .code-save-header-btn {
  background-color: #007aff;
  border: 1px solid #007aff;
  color: #fff;
  border-radius: 6px;
  padding: 3px 10px;
  font-size: 12px;
  cursor: pointer;
  outline: none;
}

.wrapper .code-save-header-btn:hover {
  background-color: #005ec4;
  border-color: #005ec4;
}

.wrapper .btn-code-icon {
  background: transparent;
  border: none;
  color: #666;
  font-size: 13px;
  cursor: pointer;
  padding: 4px 6px;
}

.wrapper .btn-code-icon:hover {
  color: #f24848;
}

.wrapper tbody tr.code-row-selected {
  background-color: #1e3a5f;
}

.wrapper .code-sort-ghost {
  opacity: 0.3;
  background: #1a2530;
}

.wrapper .code-sort-chosen {
  background: #1e3a5f;
  box-shadow: 0 4px 14px rgba(0, 0, 0, 0.5);
}

.wrapper .data-empty {
  padding: 50px 0 50px !important;
  border: 1px solid #444;
  text-align: center;
}

.wrapper .data-empty .empty_icon {
  font-size: 2rem;
  font-weight: normal;
}

.wrapper .data-empty .empty_txt {
  margin-top: 35px;
  margin-bottom: 35px;
  font-weight: 700;
  font-size: 18px;
  color: #222222;
}

/* 부트 스트랩 */
.modal .modal-header {
  display: block;
  padding: 1rem 1rem 0.7em;
}

.modal .modal-header .close {
  font-size: 2.5em;
  padding: 0.5rem 1rem;
  margin: -.7rem -1rem -.5rem auto;
}

/* ================== 팝업 레이아웃 */
/** //popup-wrap **/
.popup-dim {
  position: fixed;
  top: 0;
  left: 0;
  right: 0;
  bottom: 0;
  width: 100%;
  height: 100%;
  background: #000000;
  opacity: 0.5;
  filter: alpha(opacity=50);
  z-index: 90000;
}

.trp.popupfixed-wrap {
  display: none;
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  min-height: 100%;
  z-index: 90000;
  -webkit-overflow-scrolling: touch;
}

.trp.popupfixed-wrap .popup-dim {
  position: fixed;
  top: 0;
  left: 0;
  right: 0;
  bottom: 0;
  width: 100%;
  height: 100%;
  background-color: transparent;
  z-index: 0;
}

.trp.popupfixed-wrap .popup-align {
  display: table;
  *display: block;
  table-layout: fixed;
  width: 100%;
  height: 100%;
  text-align: center;
}

.trp.popupfixed-wrap .popup-vertical {
  display: table-cell;
  width: 100%;
  padding: 20px 0;
  text-align: center;
  vertical-align: middle;
}

.trp.popupfixed-wrap .popup-layer {
  position: relative;
  z-index: 1;
  display: inline-block;
  *display: inline;
  zoom: 1;
  width: 100%;
  pointer-events: auto;
  background-color: #303030;
  background-clip: padding-box;
  border: 1px solid #444;
  border-radius: 0.3rem;
  outline: 0;
}

.trp.popupfixed-wrap .popup-layer.option {
  max-width: 500px;
  height: auto;
}

.trp.popupfixed-wrap .popup-header {
  display: block;
  padding: 1rem 1rem 0.7em;
  border-bottom: 1px solid #444;
  border-top-left-radius: calc(0.3rem - 1px);
  border-top-right-radius: calc(0.3rem - 1px);
}

.trp.popupfixed-wrap .popup-header .btn_close {
  float: right;
  width: auto;
  padding: 0.5rem 1rem;
  margin: -.7rem -1rem -.5rem auto;
  font-family: Arial;
  font-size: 2.5em;
  font-weight: normal;
  line-height: 1;
  color: #fff;
  text-shadow: none;
  opacity: .5;
}

.trp.popupfixed-wrap .popup-header .btn_close::after {
  content: '';
  display: block;
  clear: both;
}

.trp.popupfixed-wrap .popup-header .btn_close:hover {
  color: #fff;
  text-decoration: none;
}

.trp.popupfixed-wrap .popup-header .btn_close:not(:disabled):not(.disabled):hover, .trp.popupfixed-wrap .popup-header .close:not(:disabled):not(.disabled):focus {
  opacity: .75;
}

.trp.popupfixed-wrap .popup-header .pop_tit {
  font-size: 1.40625rem;
  line-height: 1.5;
  color: #fff;
  text-align: left;
}

.trp.popupfixed-wrap .popup-body {
  padding: 1rem;
}

.trp.popupfixed-wrap .popup-body .form-group {
  text-align: left;
}

.trp.popupfixed-wrap .popup-footer {
  display: -ms-flexbox;
  display: flex;
  -ms-flex-wrap: wrap;
  flex-wrap: wrap;
  -ms-flex-align: center;
  align-items: center;
  -ms-flex-pack: end;
  justify-content: flex-end;
  padding: 0.75rem;
  border-top: 1px solid #444;
  border-bottom-right-radius: calc(0.3rem - 1px);
  border-bottom-left-radius: calc(0.3rem - 1px);
}

.trp.popupfixed-wrap .popup-footer .btn {
  margin: 0.25rem;
}

.trp.popupfixed-wrap .popup-footer.btns_full .btn {
  width: 100%;
}

.trp.popupfixed-wrap .keyword-popup-threshold-label {
  font-size: 13px;
  color: #ccc;
  margin-bottom: 5px;
  display: block;
}

.trp.popupfixed-wrap .comment-threshold-select {
  background-color: #2c3136;
  border: 1px solid #555;
  color: #ccc;
  border-radius: 8px;
  padding: 6px 10px;
  font-size: 13px;
  width: 100%;
  cursor: pointer;
}

.trp.popupfixed-wrap .comment-threshold-select:focus {
  outline: none;
  border-color: #007aff;
}

/* 다중 주석 */
.wrap .bbb {
  color: red;
  opacity: 0.6;
}

.wrap .ccc {
  box-sizing: border-box;
  text-align: center;
  background-color: #f24848;
  transform: rotate(90deg);
  color: #000;
  user-select: none;
}

/* 알림 관리 */
.wrapper .receive-card {
  background-color: #343a40;
  border-radius: 12px;
  padding: 14px 18px;
  margin-bottom: 10px;
}

.wrapper .receive-card-top {
  display: flex;
  align-items: center;
  justify-content: space-between;
}

.wrapper .receive-time-area {
  display: flex;
  align-items: center;
  gap: 8px;
  margin-top: 10px;
  padding-top: 10px;
  border-top: 1px solid #454d55;
}

.wrapper .receive-card-off .receive-time-area {
  opacity: 0.35;
  pointer-events: none;
}
.wrapper .receive-time-desc {
  font-size: 11px;
  color: #777;
  margin: 6px 0 0;
}

.wrapper .receive-time-icon {
  color: #888;
  font-size: 14px;
}

.wrapper .receive-time-select {
  background-color: #2c3136;
  border: 1px solid #555;
  color: #ccc;
  border-radius: 8px;
  padding: 3px 6px;
  font-size: 13px;
  cursor: pointer;
}

.wrapper .receive-time-select:focus {
  outline: none;
  border-color: #007aff;
}

.wrapper .receive-time-sep {
  color: #888;
  font-size: 13px;
}

.wrapper .receive-board-title {
  font-size: 15px;
  color: #e9ecef;
  font-weight: 500;
}

/* 토글 스위치 */
.wrapper .receive-toggle {
  position: relative;
  display: inline-block;
  width: 48px;
  height: 26px;
  margin-bottom: 0;
  flex-shrink: 0;
}

.wrapper .receive-toggle input {
  opacity: 0;
  width: 0;
  height: 0;
}

.wrapper .receive-toggle-slider {
  position: absolute;
  cursor: pointer;
  top: 0;
  left: 0;
  right: 0;
  bottom: 0;
  background-color: #555;
  border-radius: 26px;
  transition: 0.2s;
}

.wrapper .receive-toggle-slider:before {
  position: absolute;
  content: "";
  height: 20px;
  width: 20px;
  left: 3px;
  bottom: 3px;
  background-color: #fff;
  border-radius: 50%;
  transition: 0.2s;
}

.wrapper .receive-toggle input:checked + .receive-toggle-slider {
  background-color: #54ad70;
}

.wrapper .receive-toggle input:checked + .receive-toggle-slider:before {
  transform: translateX(22px);
}

@media (max-width: 768px) {
  .admin-search-row {
    flex-wrap: wrap;
  }
  .admin-search-select {
    width: 100%;
  }
  .wrapper .code-group-body {
    padding: 8px;
  }
  .wrapper .code-table th,
  .wrapper .code-table td {
    padding: 6px 6px;
  }
}

.keyword_add.btn-primary {
  background-color: #2e7d45 !important;
  border-color: #2e7d45 !important;
}

.multi-account-notice {
  display: flex;
  align-items: flex-start;
  gap: 5px;
}
.multi-account-notice i {
  flex-shrink: 0;
  font-size: 11px;
  line-height: 1.6;
}

/* 댓글 수 알림 관리 */
.wrapper .comment-card {
  background-color: #343a40;
  border-radius: 12px;
  padding: 14px 18px;
  margin-bottom: 10px;
}

.wrapper .comment-card-top {
  display: flex;
  align-items: center;
  justify-content: space-between;
}

.wrapper .comment-board-title {
  font-size: 15px;
  color: #e9ecef;
  font-weight: 500;
}

.wrapper .comment-threshold-area {
  display: flex;
  align-items: center;
  gap: 8px;
  margin-top: 10px;
  padding-top: 10px;
  border-top: 1px solid #454d55;
}

.wrapper .comment-card-off .comment-threshold-area {
  opacity: 0.5;
}

.wrapper .comment-threshold-icon {
  color: #888;
  font-size: 14px;
}

.wrapper .comment-threshold-label {
  font-size: 13px;
  color: #aaa;
  white-space: nowrap;
}

.wrapper .comment-threshold-select {
  background-color: #2c3136;
  border: 1px solid #555;
  color: #ccc;
  border-radius: 8px;
  padding: 3px 6px;
  font-size: 13px;
  cursor: pointer;
}

.wrapper .comment-threshold-select:focus {
  outline: none;
  border-color: #007aff;
}
