@charset "UTF-8";

@import url("font.css");

/* =========================================================
   Reset / Base
========================================================= */
*,
*::before,
*::after {
  box-sizing: border-box;
}

body {
  margin: 0;
  font-family: "Pretendard", -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto,
    Oxygen, Ubuntu, Cantarell, "Open Sans", "Helvetica Neue", sans-serif;
  -webkit-text-size-adjust: 100%;
  -webkit-tap-highlight-color: rgba(0, 0, 0, 0);
}

input:-webkit-autofill,
input:-webkit-autofill:hover,
input:-webkit-autofill:focus,
input:-webkit-autofill:active {
  -webkit-box-shadow: 0 0 0 1000px #fff inset !important;
  -webkit-text-fill-color: #000 !important;
  border: 1px solid #ced4da;
  transition: background-color 9999s ease-out 0s;
}

input[type="password"] {
  font-family: system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto,
    Oxygen, Ubuntu, Cantarell, "Open Sans", "Helvetica Neue", sans-serif;
}
input.center{
  text-align: center !important;
}
input.right{
  text-align: right !important;
}

td.center{
  text-align: center !important;
}
td.right{
  text-align: right !important;
}
td.left{
  text-align: left !important;
}

.contents {
  padding: 20px 24px 60px;
  background: var(--bg-soft);
  height: 100vh;
}

.container-fluid {
  min-height: calc(100vh - (1.625rem * 2));
  padding-left: 30px;
  padding-right: 30px;
}

.vertical-wrapper {
  display: flex;
  flex-direction: column;
  justify-content: center;
  min-height: calc(100vh - (1.625rem * 2));
}

.btn-lg {
  font-size: 18px;
}

.btn-sm {
  border-radius: 8px;
}
.form-control{
  border-radius: 8px;
}
.pr0 {
  padding-right: 0;
}

.pr-30 {
  padding-right: 30px;
}

.inline-area {
  display: inline-flex;
  align-items: center;
}

.txt-pointer,
.text-pointer {
  cursor: pointer;
}

.fst-italic {
  font-style: italic;
}

.font20 {
  font-size: 20px;
}
.font24 {
  font-size: 24px;
}
.font30 {
  font-size: 30px;
}
.font36 {
  font-size: 36px;
}
.font48 {
  font-size: 48px;
}

/* =========================================================
   Width Utility
========================================================= */
.w50 {
  width: 50px;
}
.w100 {
  width: 100px;
}
.w150 {
  width: 150px;
}
.w200 {
  width: 200px;
}
.w250 {
  width: 250px;
}
.w300 {
  width: 300px;
}
.w350 {
  width: 350px;
}
.w400 {
  width: 400px;
}

/* =========================================================
   Color Utility
========================================================= */
.c-blue {
  color: var(--blue);
}
.c-red {
  color: var(--red);
}
.c-gray {
  color: var(--gray);
}

/* =========================================================
   Form
========================================================= */
.form-check {
  padding-left: 0;
}

.form-check-label,
.form-check-text {
  cursor: pointer;
  font-size: 14px;
  color: #6c757d;
  font-weight: 500;
}

.form-check-input {
  appearance: none;
  -webkit-appearance: none;
  position: relative;
  top: 2px;
  margin-top: 0;
  margin-left: 0;
  width: 16px;
  height: 16px;
  border: 1px solid #ccc;
  border-radius: 4px;
  background-color: #fff;
  cursor: pointer;

}

.form-check-input:checked {
  background-color: #15AABC !important;
  border-color: #15AABC !important;
}

.form-check-input:checked::after {
  content: "";
  position: absolute;
  left: 4px;
  top: 0px;
  width: 7px;
  height: 11px;
  border: solid #fff;
  border-width: 0 3px 3px 0;
  transform: rotate(45deg);
}

.form-check-input:focus {
  box-shadow: 0 0 0 0.2rem rgba(21, 170, 188, 0.2);
}

/* 포커스 시 */
.form-check-input:focus {
  box-shadow: 0 0 0 0.2rem rgba(21, 170, 188, 0.25);
  border-color: #15AABC;
}

.form-check .form-check-input{
  position: relative;
  top: 3px;
  margin-right: 3px;
}
.form-floating {
  position: relative;
  margin-bottom: 20px;
}

.form-floating > .form-control {
  padding: 2.7rem 0.75rem 1.2rem 0.75rem;
}
.form-control-lg{
  font-size: 14px;
  min-height: 47px;
  height: auto;
}
.form-select-lg{
  font-size: 14px;
  min-height: 47px;
}

.form-floating label {
  position: absolute;
  top: 0;
  left: 0;
  height: 100%;
  padding: 0.5rem 0.75rem 2rem 0.75rem;
  font-size: 14px;
  font-weight: 700;
}

/* =========================================================
   Search / List
========================================================= */
.list-search-box {
  display: flex;
  justify-content: space-between;
  align-items: flex-end;
  align-self: stretch;
  text-align: center;
  gap: 10px;
  margin-bottom: 20px;
  border-radius: 16px;
  padding: 12px 10px;
  background: #fff;
  border: 1px solid #e3e6f0;
}

.list-search-box .search-keyword-area {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 10px;
  width: 100%;
}

.list-search-box .search-keyword-area.left {
  justify-content: flex-start;
}
.list-search-box .search-keyword-area .tickets{
  flex: 1;
  display: flex;
  align-items: center;
  justify-content: flex-start;
  gap: 10px;
}
.list-search-box .search-keyword-area .tickets .tickets-title{
  padding-left: 10px;
}

.list-search-box .search-keyword-area.justify-between {
  justify-content: space-between;
}

.list-search-box .search-keyword-area.column {
  flex-direction: column;
  gap: 10px;
}

.list-search-box .form-control,
.list-search-box .form-select {
  height: 41px;
  padding-top: 0.5rem;
  padding-bottom: 0.5rem;
}

.list-search-box .form-select {
  width: auto;
  min-width: 200px;
  display: inline-block;
}
.list-search-box .ticket-select-id{
  min-width: 500px;
}
.list-search-box .search-keyword-area .btn-danger,
.list-search-box .search-btn-area .btn-primary,
.list-search-box .btn-danger,
.list-search-box .btn-primary,
.list-search-box .btn-outline-primary {
  width: 100px;
}

.list-search-box .btn-danger,
.list-search-box .btn-primary,
.list-search-box .btn-outline-primary {
  height: 40px;
  line-height: 40px;
  padding: 0;
  font-size: 15px;
}

.list-search-box .search-btn-area {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 10px;
  height: 40px;
}

.list-search-box .search-btn-area .btn i {
  padding-right: 10px;
}

.list-search-box .search-btn-area .btn-primary.btn-add,
.list-search-box .search-btn-area .btn-primary {
  height: 40px;
  width: 100px;
  font-weight: 600;
}

.list-search-box .search-btn-area .btn-file-upload .btn-primary {
  position: relative;
  top: 4px;
  width: 150px;
}

.list-search-box .form-check-btn {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 7px;
}

.list-search-box .form-check-btn label {
  margin: 0;
  font-size: 15px;
  display: flex;
  justify-content: center;
  align-items: center;
}

.list-search-box .form-check-btn .form-check-input {
  top:0px;
}

.list-search-box input[type="date"] {
  width: 20%;
  max-width: 150px;
}

.list-search-box .form-check-btn.deadlin {
  width: 600px;
  justify-content: flex-start;
}

.datalist-area {
  position: relative;
}

.datalist-area input {
  padding-right: 36px;
}

.datalist-area::after {
  content: "▼";
  position: absolute;
  right: 12px;
  top: 50%;
  transform: translateY(-50%);
  font-size: 12px;
  pointer-events: none;
  color: #888;
}

.process-log-search-box {
  padding: 14px 18px;
}

.process-log-search-box .search-keyword-area {
  align-items: center;
  gap: 16px;
}

.process-log-search-box .search-keyword-area .tickets {
  flex-wrap: wrap;
  gap: 12px;
}

.process-log-search-box .search-keyword-area .tickets .tickets-title {
  padding-left: 0;
  min-width: 44px;
}

.process-log-search-box .date-range {
  display: flex;
  align-items: center;
  gap: 8px;
}

.process-log-search-box .date-input .form-control {
  width: 150px;
}

.process-log-search-box input[type="search"] {
  flex: 1 1 220px;
  width: 100%;
  min-width: 220px;
}

.process-log-search-box .search-btn-area {
  flex: 0 0 auto;
}

.list-guide-box {
  border-radius: calc(0.5rem - 1px);
  margin-bottom: 20px;
  color: #0ea289;
  padding: 15px 10px 13px;
  text-align: center;
  background: #ebfffd;
  border: 1px solid #65d6c4;
}

.list-guide-box strong {
  color: #0060e6;
}

.list-form-box {
  display: flex;
  flex-direction: column;
  align-items: center;
  align-self: stretch;
  gap: 20px;
}

.form-section {
  width: 100%;
  padding: 18px 20px 20px;
  border: 1px solid #e5eaf2;
  border-radius: 16px;
  background: linear-gradient(180deg, #fbfdff 0%, #f7fafd 100%);
  box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.9);
}

.form-section + .form-section {
  margin-top: 4px;
}

.form-section .card-sub-title {
  margin-bottom: 16px;
  padding-bottom: 10px;
  border-bottom: 1px solid #e3e9f2;
}

.form-section-body {
  display: flex;
  flex-direction: column;
  gap: 14px;
}

.form-section-body .list-form-line {
  margin-bottom: 0;
}

.list-form-line {
  display: flex;
  justify-content: flex-start;
  align-items: center;
  width: 100%;
  gap: 8px;
}
.list-form-line.v-top{
  align-items: flex-start;
}

.list-form-line label {
  width: 150px;
  text-align: left;
  color: var(--dark);
}

.list-form-line select {
  width: 100%;
}

.date-range {
  display: flex;
  align-items: center;
  gap: 10px;
}

.date-range .date-input {
  position: relative;
  display: flex;
  align-items: center;
}

.date-range .date-input input[type="date"] {
  height: 40px;
  max-width: 150px;
  min-width: 150px;
  padding: 0 6px 0 12px;
  border: 1px solid #dbe3ee;
  border-radius: 10px;
  background: #fff;
  font-size: 14px;
  border-radius: 0.323rem;
  color: #374151;
  outline: none;
  transition: all 0.2s ease;
}

.date-range .date-input input:focus {
  border-color: #2563eb;
  box-shadow: 0 0 0 3px rgba(37, 99, 235, 0.1);
}
.date-range .date-input input:disabled{
  background: #e3e3e3;
  border-color: #e3e3e3;
  color: rgba(0, 0, 0, 0.2);
}

.date-range .date-separator {
  font-size: 14px;
  color: #6b7280;
}
.date-range .date-search-btn:hover {
  background: #1d4ed8;
}

/* =========================================================
   Suggestions
========================================================= */
.linline-align-area {
  display: flex;
  align-items: center;
  justify-content: flex-start;
  gap: 30px;
  margin: 0;
  padding: 0;
}

.linline-align-area.gap10 {
  gap: 10px;
}

.linline-align-area li {
  position: relative;
}

.linline-align-area li:nth-child(3) .suggestions-box {
  right: 0;
}

.linline-align-area .form-check-inline {
  width: 60px;
  margin-right: 0;
}

.suggestions-box {
  border: 1px solid #ccc;
  max-height: 150px;
  overflow-y: auto;
  background-color: #fff;
  position: absolute;
  top: 30px;
  width: 100%;
  min-width: 300px;
  max-width: 300px;
  display: none;
  z-index: 1000;
}

.suggestions-box div {
  padding: 8px;
  cursor: pointer;
}

.suggestions-box div:hover {
  background-color: #f0f0f0;
}

/* =========================================================
   File Upload
========================================================= */
.btn-file-upload {
  display: block;
}

.btn-file-upload input[type="file"],
.filebox input[type="file"],
.btn-filebox input[type="file"] {
  position: absolute;
  width: 1px;
  height: 1px;
  padding: 0;
  margin: -1px;
  overflow: hidden;
  clip: rect(0, 0, 0, 0);
  border: 0;
}

.filebox {
  float: left;
  margin-right: 20px;
}

.filebox label {
  display: inline-block;
  padding: 0.5em 0.75em;
  color: #6e707e;
  font-size: inherit;
  line-height: normal;
  vertical-align: middle;
  background-color: #fdfdfd;
  cursor: pointer;
  border: 1px solid #d1d3e2;
  border-bottom-color: #e2e2e2;
  border-radius: 0.25em;
  margin: 0;
}

.btn-filebox label {
  cursor: pointer;
  margin-bottom: 0;
}

.label-ex-text {
  display: inline-block;
  font-size: 12px;
}

.file-uplode-box {
  width: 100%;
  text-align: left;
  display: flex;
  align-items: flex-end;
  gap: 10px;
}

.file-uplode-box .thumb-display {
  margin: 0;
}

.file-uplode-box .thumb-display.store {
  width: 130px;
  height: 90px;
}

.file-uplode-box .thumb-display.pc {
  width: 120px;
  height: 60px;
}

.file-uplode-box .thumb-display.mo {
  width: 50px;
  height: 60px;
}

.file-uplode-box .btn-file-uplode label {
  margin-bottom: 0;
  width: auto;
}

.file-uplode-box #file-uplode,
.file-uplode-box #banner-image {
  display: none;
}

/* =========================================================
   Dashboard
========================================================= */
.dashboard-warp {
  padding-top: 10px;
  margin-top: 10px;
}

.dashboard-warp .card-header {
  padding: 1.8rem 1.25rem 0.5rem;
  border-bottom: none;
  background: #fff;
}

.dashboard-warp .card-header .card-head-tit {
  padding: 0;
}

.dashboard-warp .card-header .card-head-tit h5 {
  font-size: 18px;
  font-weight: 600;
  margin: 0;
}

.dashboard-warp .card-header .card-head-tit a {
  text-decoration: underline;
  font-size: 14px;
}

.dashboard-cont {
  display: flex;
  flex-wrap: wrap;
  min-height: 145px;
}

.dashboard-cont .cont-stats-box {
  width: 50%;
  text-align: center;
  font-size: 1rem;
  display: flex;
  align-items: center;
  justify-content: center;
}

.dashboard-cont .cont-stats-box p {
  margin-bottom: 10px;
  font-size: 1rem;
  color: #005e4f;
}

.dashboard-cont .cont-stats-box .stats-area {
  display: inline-block;
  background: #f4fffe;
  width: 90%;
  padding: 30px 0;
  border-radius: 30px;
}

.dashboard-cont .cont-stats-box .stats-box {
  font-size: 2rem;
  color: #005e4f;
}

.dashboard-cont .cont-stats-box .stats-box span {
  font-size: 2.5rem;
  font-weight: 700;
}

.dashboard-cont .cont-stats-box .stats-box em {
  font-size: 1.8rem;
  position: relative;
  top: -3px;
  font-style: normal;
}

.dashboard-cont .soon-user-box {
  width: 100%;
}

.dashboard-cont .soon-user-box p {
  color: var(--dark);
  margin-bottom: 2px;
}

.dashboard-cont .soon-user-box p span {
  display: block;
  padding-left: 20px;
  text-align: left;
}

.dashboard-cont .soon-user-box p span::before {
  content: "-";
  padding-right: 5px;
}

.dashboard-cont .soon-user-box .soon-user-add::before {
  content: "...";
  position: relative;
  top: -3px;
  display: block;
  line-height: 10px;
  text-align: center;
}

.dashboard-ranking .ranking-area .ranking-area-lst {
  width: 94%;
  margin: 0 3%;
}

.dashboard-ranking .ranking-area .ranking-area-lst tr:last-child {
  padding-bottom: 0;
}

.dashboard-ranking .ranking-area .ranking-area-lst tr td {
  line-height: 40px;
  padding-bottom: 5px;
}

.dashboard-ranking .ranking-area .ranking-area-lst tr td:nth-child(1) {
  font-weight: 700;
}

.dashboard-ranking .ranking-area .ranking-area-lst tr td:nth-child(1) strong {
  font-size: 18px;
  font-family: "Helvetica Neue";
  position: relative;
  top: 1px;
}

.dashboard-ranking .ranking-area .ranking-area-lst tr td:nth-child(3) {
  text-align: right;
}

.dashboard-ranking .ranking-area .ranking-lst-user {
  margin-bottom: 0;
}

.dashboard-ranking .ranking-area .ranking-lst-user dt {
  width: 40px;
  height: 40px;
  border-radius: 40px;
  margin-right: 10px;
  overflow: hidden;
  border: 1px solid #f2f2f2;
  float: left;
  background: url(/images/profile_thumb.jpg);
  background-size: cover;
}

.dashboard-ranking .ranking-area .ranking-lst-user dt.top {
  border-color: #4e73df;
}

.dashboard-ranking .ranking-area .ranking-lst-user dd {
  margin: 0;
  font-size: 14px;
}

.dashboard-ranking .ranking-area .ranking-lst-user dt img {
  width: 100%;
}

.dashboard-table-wrapper {
  height: 610px;
  overflow-x: hidden;
  overflow-y: scroll;
  border: 1px solid #e3e6f0;
  border-right: none;
}

.dashboard-table-wrapper table {
  margin-bottom: 0;
}

.dashboard-lstlist table {
  width: 100%;
}

.dashboard-lstlist table tr {
  border-bottom: 1px solid #eee;
  cursor: pointer;
}

.dashboard-lstlist table th,
.dashboard-lstlist table td {
  padding: 10px 5px;
}

.dashboard-lstlist table th {
  font-weight: 400;
  font-size: 14px;
  text-overflow: ellipsis;
}

.dashboard-lstlist table td {
  text-align: right;
  font-size: 12px;
  width: 84px;
}

.dashboard-lstlist.list-type-text tr th {
  vertical-align: middle;
  border: none;
  border-right: 1px solid #b6b8c1;
}

.dashboard-lstlist.list-type-text tr th:last-child {
  border-right: none;
}

.dashboard-lstlist.list-type-text tr td {
  vertical-align: middle;
  border-right: 1px solid #e3e6f0;
  border-bottom: 1px solid #e3e6f0;
  padding: 10px 0;
}

.dashboard-lstlist.list-type-text tr td.left {
  padding: 10px;
}

.dashboard-lstlist.list-type-text tr td:last-child {
  border-right: none;
}

.dashboard-lstlist .tbl-no-results td:last-child {
  padding: 20% 0 23%;
  color: #ccc;
  border-bottom: none;
}

.dashboard-lstlist .tbl-no-results .no-results-warp .title {
  color: #ccc;
}

.dashboard-chart {
  height: 360px;
}

.dashboard-chart-ui {
  width: 100%;
  position: relative;
}

.dashboard-chart-ui ul li {
  float: left;
  list-style: none;
  padding: 0;
}

.dashboard-chart-ui .chart-graph {
  padding: 0 120px 0 20px;
}

.dashboard-chart-ui .chart-category {
  width: 100px;
  position: absolute;
  top: 0;
  right: 0;
}

.dashboard-chart-ui .chart-category span {
  display: block;
  text-align: left;
  padding: 0 0 10px;
}

.dashboard-warp .progress {
  margin: 40px 30px;
  height: 30px;
  overflow: visible;
}

.dashboard-warp .progress .progress-bar {
  position: relative;
  overflow: visible;
  color: var(--primary);
}

.dashboard-warp .progress .progress-bar .progress-text {
  font-size: 18px;
  font-weight: 700;
  position: absolute;
  top: -15px;
  right: -30px;
  width: 60px;
  margin: 0 0 0 -30px;
}

/* =========================================================
   Hot Pick
========================================================= */
.hot-pick-list {
  display: flex;
  flex-wrap: wrap;
  min-height: 149px;
  width: 100%;
}

.hot-pick-list ul {
  margin: 0;
  padding: 0;
  width: 50%;
  display: inline-block;
}

.hot-pick-list ul li {
  margin-bottom: 7px;
}

.hot-pick-list .ranking {
  display: inline-block;
  width: 30px;
  text-align: right;
}

.hot-pick-list .keyword {
  padding: 0 3px 0 5px;
}

.hot-pick-list .follow {
  font-size: 0.875rem;
  color: #004f57;
}

/* =========================================================
   Layout / Sidebar / Navbar
========================================================= */


.navbar-user-warp {
  width: 100%;
  padding: 1rem 1.5rem 0.7rem;
  background: #fff;
  border-bottom: 1px solid rgba(0, 0, 0, 0.05);
  box-shadow: 0 0 5px 1px rgba(0, 0, 0, 0.1);
}

.navbar-user-data {
  color: #3c3d40;
}

.navbar-user-data span {
  display: inline-block;
}

.navbar-user-data .academy-name {
  font-weight: 600;
  font-size: 18px;
  color: #212529;
}

.navbar-user-data .academy-code {
  font-weight: 700;
  font-size: 18px;
  color: var(--primary);
}
.navbar-user-data .academy-code::before{
  content: '-';
  padding-right: 4px;
  padding-left: 5px;
  color: #212529;
}
.plan-type-badge{
  display: inline-flex;
  justify-content: center;
  align-items: center;
  gap: 5px;
  position: relative;
  top: -2px;
  border: none;
  background: transparent;
}
.plan-type-badge .plan-badge{
  background: #5b6b73;
  color: #fff;
  width: 70px;
  height: 22px;
  border-radius: 16px;
  line-height: 1;
  font-size: 14px;
  display: flex;
  justify-content: center;
  align-items: center;
}

.plan-type-badge .plan-badge.starter{
  background: var(--plan-starter);
}
.plan-type-badge .plan-badge.pro{
  background: var(--plan-pro);
}
.plan-type-badge .plan-badge.team{
  background: var(--plan-team);
}

.logout-btn {
  cursor: pointer;
  color: #3c3d40;
  background-color: #fff;
  border: 1px solid #3c3d40;
  font-size: 12px;
  border-radius: 3px;
  padding: 3px 0 2px;
  display: inline-block;
  width: 70px;
  text-align: center;
}

/* =========================================================
   Keyword / Tag
========================================================= */
.keyword-item {
  position: relative;
  margin: 0 10px 10px 0;
  font-size: 14px;
  display: inline-block;
}

.keyword-item span {
  display: inline-block;
}

.keyword-item.keyword-tit .keyword-btn {
  padding: 10px 35px 10px 15px;
}

.keyword-item.keyword-tit .keyword-btn.on + .remove-btn {
  color: #13b89c;
}

.keyword-btn {
  padding: 10px 15px;
  border: 1px solid #ccc;
  border-radius: 5px;
  background-color: #fff;
  color: #333;
  cursor: pointer;
  transition: background-color 0.3s, color 0.3s, transform 0.2s;
}

.keyword-btn.on {
  background: #dbfffb;
  border-color: #27c0a7;
  color: #13b89c;
  transform: scale(1.05);
}

.keyword-btn.off {
  color: #333;
  border-color: #ccc;
  transform: scale(1);
}

.keyword-btn.add {
  background-color: #27c0a7;
  border: none;
  color: #fff;
}

.keyword-btn.add-press {
  background-color: #f9a825;
  border: none;
  color: #fff;
}

.keyword-btn.on.highlight-keyword {
  background-color: #fff3a0 !important;
  border-color: #f9a825 !important;
  color: #b8860b !important;
}

.remove-btn {
  position: absolute;
  top: 11px;
  right: 10px;
  display: inline-block;
  cursor: pointer;
  font-size: 14px;
}

.remove-btn.on.highlight-remove,
.keyword-btn.on.highlight-keyword + .remove-btn {
  color: #b8860b !important;
}

.word-list-tag {
  position: relative;
  display: inline-block;
}

.word-list-tag span {
  background-color: #fff;
  display: block;
  font-size: 14px;
  padding: 6px 12px 4px;
  font-weight: 400;
  color: #3c3d40;
  border: 1px solid #3c3d40;
  border-radius: 0.35rem;
  margin-right: 5px;
}

.word-list-tag.del-btn span {
  padding: 6px 30px 4px 12px;
}

.word-list-tag .btn-close {
  position: absolute;
  top: 4px;
  right: 2px;
  background-size: 10px;
}

.word-list-tag .form-control,
.word-list-tag .form-control-plaintext {
  padding: 6px 12px;
  font-size: 14px;
}

.word-list-tag .form-control.series-edit-number {
  padding: 3px 3px 3px 8px;
  margin: 0 auto;
  text-align: center;
  border: none;
  height: 16px;
  background-color: transparent;
  border-color: transparent;
}

.word-list-tag .form-control:focus.series-edit-number {
  color: #6e707e;
  background-color: transparent;
  border-color: transparent;
  box-shadow: none;
}

/* =========================================================
   Ranking / Trophy
========================================================= */
.ranking-trophy {
  display: inline-block;
  background: url(/images/icon_trophy.png) no-repeat 0 50%;
  background-size: 25px;
  padding: 2px 0 0 25px;
  width: 80px;
  text-align: right;
  font-weight: 700;
}

/* =========================================================
   General Table
========================================================= */
/* wrapper */
.table-responsive {
  border-radius: 16px;
  overflow: hidden;
  border: 1px solid #e7edf5;
  background: #fff;
}

/* 기본 테이블 */
.table {
  margin: 0;
  border-collapse: separate;
  border-spacing: 0;
  font-size: 14px;
}

/* 헤더 */
.table thead th {
  background: #f8fafc;
  color: #374151;
  font-weight: 700;
  font-size: 13px;
  padding: 14px 16px;
  border-bottom: 1px solid #e5e7eb;
  text-align: center;
  white-space: nowrap;
}

/* 바디 */
.table tbody td {
  padding: 12px 16px;
  color: #4b5563;
  font-weight: 500;
  border-top: 1px solid #f1f5f9;
  vertical-align: middle;
}

/* 첫 행 border 제거 */
.table tbody tr:first-child td {
  border-top: none;
}

.table tbody tr:hover {
  background: #f8fafc;
  transition: background 0.2s ease;
}

/* 키워드 컬럼 (자동 줄임) */
.table tbody td.text-ellipsis{
  max-width: 400px;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}

.process-log-table {
  table-layout: fixed;
  width: 100%;
}

.process-log-table col.processed-at-col {
  width: 190px;
}

.process-log-table col.company-name-col {
  width: 180px;
}

.process-log-table col.notice-count-col {
  width: 130px;
}

.process-log-table col.keyword-col {
  width: auto;
}

.process-log-table td:nth-child(1),
.process-log-table td:nth-child(2),
.process-log-table td:nth-child(3) {
  white-space: nowrap;
}

.process-log-table td:nth-child(4) {
  max-width: none;
}


.table tbody td.td-title{
  font-weight: 700;
  color: #1f2937;
}
.table .btn{min-width: 70px;}
.table-bordered > :not(caption) > * > * {
  border: none;
}
.input-unit-group{
  display: flex;
  justify-content: center;
  align-items: center;
  gap: 5px;
}

/* =========================================================
   Table Top
========================================================= */
.table-top-data {
  padding: 0 0 8px;
  display: flex;
  justify-content: space-between;
  align-items: center;
  align-self: stretch;
}

.table-top-data .list-total-state {
  font-size: 12px;
  display: inline-block;
  margin-right: 20px;
}

.btn-list-top {
  display: inline-block;
  padding: 2px 12px;
  margin-right: 3px;
  color: #202530;
  font-size: 12px;
  border: 1px solid #373e4e;
  border-radius: 30px;
  vertical-align: middle;
}

.btn-list-top:hover {
  color: var(--primary);
  border-color: var(--primary);
}

.btn-list-top i {
  padding-right: 5px;
}

.btn-list-top i.off {
  opacity: 0.3;
}



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

.card-header .card-title{
  font-size: 20px;
  margin-bottom: 0;
  color: var(--dark);
  font-weight: 700;
  white-space: nowrap;
}
.card-header .card-header__left{
  display: flex;
  justify-content: flex-start;
  align-items: center;
  gap: 10px;
}
.card-header .form-select{
  min-width: 100px;
  width: auto;
}
.feature-status-badge {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  margin-left: 8px;
  padding: 2px 8px;
  border-radius: 999px;
  background: rgba(196, 53, 53, 0.12);
  color: #c43535;
  font-size: 11px;
  font-weight: 600;
  line-height: 1.2;
  vertical-align: middle;
  white-space: nowrap;
}

.card-header .btn {
  display: inline-block;
  padding: 0 0 0 0;
  font-size: 14px;
  font-weight: 500;
  line-height: 24px;
  height: 28px;
  min-width: 70px;
  border-radius: 8px;
}


.card-sub-title{
  display: block;
  margin-bottom: 8px;
  font-size: 14px;
  font-weight: 700;
  color: var(--dark);
  width: 100%;
  text-align: left;
}

.btn-list-detail {
  z-index: 10;
  display: inline-block;
  padding: 1px 10px;
  font-size: 12px;
  color: #212529;
  background-color: #fff;
  border: 1px solid #212529;
  border-radius: 1rem;
  margin-left: 5px;
  min-width: 60px;
  min-height: 20px;
}

.btn-list-detail.solid {
  color: #fff;
  background-color: #212529;
  padding: 5px 8px;
}

.btn-list-detail.disabled {
  color: #fff;
  background-color: #b8b8bb;
  border: 1px solid #b8b8bb;
  padding: 5px 8px;
  cursor: default;
}

.btn-list-detail i {
  margin-right: 5px;
}

.right-btn-area .text {
  float: left;
  line-height: 28px;
}

.right-btn-area .btn-list-detail {
  float: right;
}

.btn-add-ticket {
  display: inline-block;
  cursor: pointer;
  width: 20px;
  height: 20px;
  position: relative;
  top: -2px;

}
.btn-add-ticket svg{
  width: 18px;
  height: 18px;
  color: var(--primary);
}
.btn-add-ticket svg path{

  fill: currentColor;
}
.guide-text-form{
  width: 100%;
}
.guide-text-form--inline{
  display: flex;
  align-items: center;
  gap: 10px;
}
.guide-text-form--inline .form-control{
  flex: 1 1 auto;
}
.guide-text-form .form-guide-text{
  margin-top: 3px;
  text-align: right;
}
.inline-check{
  display: inline-flex;
  align-items: center;
  gap: 4px;
  width: auto !important;
  white-space: nowrap;
  flex: 0 0 auto;
}
.inline-check input[type="checkbox"]{
  margin: 0;
}
.btn-copy {
  font-size: 18px;
}

.btn-listdata-del {
  font-size: 18px;
  cursor: pointer;
}

.btn-list-react {
  line-height: 100%;
  font-size: 13px;
  display: flex;
  gap: 6px;
  align-items: center;
  justify-content: center;
}

.btn-list-react:hover {
  color: #1e1e1e;
}

.btn-list-react em {
  display: inline-block;
  width: 14px;
  height: 14px;
  border-radius: 14px;
  font-style: normal;
  background: #c3c4c7;
  border: 1px solid #1e1e1e;
}

.btn-list-react .react-agree {
  background: rgb(0, 150, 0);
}

.btn-list-react .react-mute {
  background: rgb(255, 255, 0);
}

.btn-list-react .react-refuse {
  background: rgb(255, 0, 0);
}

.btn-list-react em.text {
  width: auto;
  border-radius: 0;
  border: none;
}

.btn-list-react .react-agree.text {
  background: transparent;
  color: rgb(0, 150, 0);
  cursor: pointer;
}

.btn-list-react .react-mute.text {
  background: transparent;
  color: rgb(255, 255, 0);
}

.btn-list-react .react-refuse.text {
  background: transparent;
  color: rgb(255, 0, 0);
  font-weight: 300;
}

/* =========================================================
   Status
========================================================= */
.user-state {
  font-size: 0.8rem;
  margin-right: 0.5rem;
}

.attendance-status {
  font-weight: 500;
  display: inline-block;
}

.attendance-status::before {
  content: "●";
  padding-right: 5px;
}

.attendance-status.present {
  color: var(--blue);
}

.attendance-status.absent {
  color: var(--red);
}

.attendance-status.early {
  color: var(--orange);
}

.attendance-status.late {
  color: var(--green);
}

.feedback-state-text {
  display: block;
}

.feedback-state-text.finish {
  color: #0d6efd;
}

.feedback-text-area {
  min-height: 200px;
}

/* =========================================================
   Card / Header
========================================================= */
.card-text-title {
  font-size: 16px;
}

.card-text-cont {
  font-size: 50px;
}

.card-text-cont .unit-text {
  font-size: 30px;
  position: relative;
  top: -3px;
  padding-left: 5px;
}

.card-head-tit {
  display: flex;
  justify-content: space-between;
  align-items: center;
  align-self: stretch;
  padding: 10px 0 0;
}

.card-head-tit .head-tit {
  font-size: 22px;
  font-weight: 600;
  line-height: 100%;
}

.card-head-tit .head-btn {
  display: block;
  background: #212529;
  color: #fff;
  font-size: 12px;
  padding: 4px 10px 2px;
  border-radius: 5px;
}

.card-head-tit .head-btn:hover {
  color: #fff;
}

.card .table-responsive{
  border-radius: 0;
  border-top: 1px solid #d2dae3;
  border-right: none;
  border-left: none;
}
.card .table {
  margin-bottom: 0;
}

.card .table.table-bordered th {
  padding: 0.5rem 0;
}

.card .table th,
.card .table td {
  padding: 0.5rem 0.75rem;
  border-top: none;
}

.card.dashboard-courses {
  min-height: 697px;
}

.card .card-courses-area {
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  padding: 0 10px;
  gap: 20px;
}

.card .card-courses {
  width: 100%;
  text-align: center;
  background: #f8f8f8;
  border: 1px solid #e3e6f0;
  padding: 25px 30px;
  border-radius: 30px;
}

.card .card-courses dt {
  padding-top: 10px;
  margin-bottom: 10px;
}

.card .card-courses dd span::after {
  content: "|";
  color: #3c3d40;
  padding: 0 10px;
}

.card .card-courses dd span:last-child::after {
  content: "";
  padding: 0;
}

.card.print-fix-height {
  min-height: 100px;
}

.contents-card{
  position: relative;
  overflow: hidden;
  border: 1px solid rgba(15, 23, 42, 0.08);
  border-radius: 18px;
  background: #fff;
  box-shadow: 0 12px 30px rgba(15, 23, 42, 0.05);
  padding: 24px;
}

/* =========================================================
   GNB Title
========================================================= */
.gnb-title {
  position: relative;
  margin-bottom: 14px;
}

.gnb-title h1 {
  font-size: 32px;
  font-weight: 700;
  margin-bottom: 0;
  white-space: nowrap;
}

.gnb-title h1 span {
  font-size: 30px;
  opacity: 0.5;
  font-weight: 400;
}

.gnb-title h1 span::after {
  content: "/";
  position: relative;
  bottom: 3px;
  font-size: 24px;
  padding: 0 8px;
}

.gnb-title h1 span:last-child {
  opacity: 1;
  font-weight: 500;
}

.gnb-title h1 span:last-child::after {
  content: "";
}

.gnb-title h1 .title-btn-back {
  display: inline-block;
  margin-right: 12px;
  background: #2e2f37;
  border: 2px solid #2e2f37;
  border-radius: 5px;
  position: relative;
  top: 3px;
  float: left;
  width: 28px;
  height: 31px;
}

.gnb-title h1 .title-btn-back::after {
  position: absolute;
  left: 9px;
  top: 7px;
  content: "";
  width: 13px;
  height: 13px;
  border-top: 4px solid #fff;
  border-right: 4px solid #fff;
  transform: rotate(225deg);
}

/* =========================================================
   Modal
========================================================= */
.btn-close {
  box-sizing: content-box;
  width: 1.7em;
  height: 1.7em;
  color: #000;
  background: transparent
    url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='%23000'%3e%3cpath d='M.293.293a1 1 0 0 1 1.414 0L8 6.586 14.293.293a1 1 0 1 1 1.414 1.414L9.414 8l6.293 6.293a1 1 0 0 1-1.414 1.414L8 9.414l-6.293 6.293a1 1 0 0 1-1.414-1.414L6.586 8 .293 1.707a1 1 0 0 1 0-1.414z'/%3e%3c/svg%3e")
    center/1em auto no-repeat;
  border: 0;
  opacity: 0.5;
  font-size: inherit;
  display: inline-block;
}

.modal-content {
  border-radius: 12px;
}

.modal-header {
  padding: 16px 16px 10px 16px;
}

.modal-header .btn-close {
  padding: calc(var(--bs-modal-header-padding-y) * 0.5)
    calc(var(--bs-modal-header-padding-x) * 0.5);
  margin: calc(-0.5 * var(--bs-modal-header-padding-y))
    calc(-0.5 * var(--bs-modal-header-padding-x))
    calc(-0.5 * var(--bs-modal-header-padding-y)) auto;
}


.modal-title {
  font-weight: 700;
  font-size: 24px;
  color: var(--dark);
}

.modal-title em {
  font-size: 16px;
  font-style: normal;
  color: #6e707e;
}

.modal-title .teacher-name,
.modal-title .cont-tit span {
  color: var(--primary);
}

.modal-body {
  position: relative;
  flex: 1 1 auto;
  padding: 1.5rem;
  font-size: 14px;
}

.modal-body .table th,
.modal-body .table td {
  padding: 0.5rem 1rem;
}
.modal-body .table-responsive{
  border-radius: 0;
 }
 .modal-body .table tbody td:nth-child(2) {
  font-weight: 500;
  color: unset;
}


.modal-footer .guide-text {
  font-size: 12px;
  color: var(--primary);
  margin: 10px 0 0;
}

.modal-footer .right-cont-text {
  display: inline-block;
  text-align: left;
  position: absolute;
  left: 15px;
  top: 19px;
  font-size: 14px;
}

.modal-footer .btn {
  min-width: 100px;
  height: 40px;
  font-size: 16px;
  font-weight: 600;
}

.modal-footer .btn-primary {
  min-width: 150px;
  background: var(--primary);
  border-color: var(--primary);
}

.modal-footer .btn-primary:hover {
  background: var(--cyan);
  border-color: var(--cyan);
}

.modal-footer .btn-outline-primary {
  border-color: #b1b3b5;
  background: #b1b3b5;
  color: #fff;
}

.modal-footer .btn-outline-primary:hover {
  border-color: #a2a3a4;
  background: #a2a3a4;
}

/* =========================================================
   DataTables / Table States
========================================================= */
.dataTables_length {
  text-align: right;
}

.card-header .usage-approve-notice {
  color: var(--primary);
  font-size: 14px;
  padding: 0;
  margin: 0;
  text-align: left;
}

.card-header .usage-approve-notice span {
  color: #3c3d40;
  float: right;
}

.card-header .control-btn-area{
  display: flex;
  justify-content: center;
  align-items: center;
  gap: 7px;
}

.expected-date-area {
  width: 100%;
  padding: 5px 0 10px 115px;
}

/* =========================================================
   Subscription Plan Management
========================================================= */
.subscription-plan-page.contents {
  height: auto;
  min-height: calc(100vh - 40px);
}

.subscription-plan-page .gnb-title {
  margin-bottom: 18px;
}

.subscription-plan-page .list-search-box {
  padding: 18px 20px;
  align-items: center;
  background: #fff;
  border: 1px solid rgba(15, 23, 42, 0.06);
  border-radius: 20px;
  box-shadow: 0 12px 30px rgba(15, 23, 42, 0.05);
}

.subscription-plan-toolbar {
  flex-wrap: wrap;
  justify-content: space-between;
  align-items: center;
  gap: 16px;
}

.subscription-plan-toolbar__summary {
  display: flex;
  flex: 1 1 320px;
  flex-wrap: wrap;
  gap: 12px;
}

.subscription-plan-toolbar__stat {
  flex: 1 1 120px;
  min-width: 120px;
  padding: 12px 14px;
  border-radius: 14px;
  background: #fff;
  border: 1px solid rgba(15, 23, 42, 0.06);
  box-shadow: 0 8px 22px rgba(15, 23, 42, 0.04);
}

.subscription-plan-toolbar__stat .label {
  display: block;
  margin-bottom: 4px;
  font-size: 12px;
  color: #6b7280;
}

.subscription-plan-toolbar__stat strong {
  font-size: 20px;
  font-weight: 800;
  color: #111827;
}

.subscription-plan-toolbar__actions {
  display: flex;
  align-items: center;
  justify-content: flex-end;
  gap: 10px;
  flex: 1 1 320px;
  flex-wrap: wrap;
}

.subscription-plan-toolbar__search {
  flex: 1 1 320px;
  min-width: 0;
  max-width: 420px;
}

.subscription-plan-toolbar__search .form-control {
  width: 100%;
}

.subscription-plan-area {
  margin-top: 18px;
}

.subscription-plan-grid {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(300px, 1fr));
  gap: 20px;
}

.subscription-plan-card {
  position: relative;
  overflow: hidden;
  border: 1px solid rgba(15, 23, 42, 0.08);
  border-radius: 18px;
  background: #fff;
  box-shadow: 0 12px 30px rgba(15, 23, 42, 0.05);
  transition: transform 0.18s ease, box-shadow 0.18s ease, border-color 0.18s ease;
}

.subscription-plan-card:hover {
  transform: translateY(-2px);
  box-shadow: 0 18px 40px rgba(15, 23, 42, 0.08);
  border-color: rgba(21, 170, 188, 0.18);
}

.subscription-plan-card::before {
  content: "";
  position: absolute;
  inset: 0 auto auto 0;
  width: 100%;
  height: 4px;
  background: linear-gradient(90deg, var(--primary), #77c0ff);
}

.subscription-plan-card.is-disabled {
  opacity: 0.68;
  filter: grayscale(0.08);
}

.subscription-plan-card__top {
  display: flex;
  justify-content: space-between;
  gap: 12px;
  padding: 18px 18px 12px;
}

.subscription-plan-card__eyebrow {
  display: flex;
  align-items: center;
  gap: 8px;
  margin-bottom: 10px;
}

.subscription-plan-card__order,
.subscription-plan-card__code {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-height: 24px;
  padding: 0 10px;
  border-radius: 999px;
  font-size: 12px;
  font-weight: 700;
  letter-spacing: 0.02em;
}

.subscription-plan-card__order {
  background: rgba(21, 170, 188, 0.12);
  color: #0f766e;
}

.subscription-plan-card__code {
  background: #eef2ff;
  color: #4338ca;
}

.subscription-plan-card__title {
  margin: 0;
  font-size: 20px;
  font-weight: 800;
  color: #111827;
  line-height: 1.2;
}

.subscription-plan-card__badges {
  display: flex;
  flex-direction: column;
  align-items: flex-end;
  gap: 6px;
}

.subscription-plan-card__price {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 10px;
  padding: 0 18px 12px;
}

.subscription-plan-card__price-item {
  padding: 10px 12px;
  border-radius: 14px;
  background: #f8fafc;
}

.subscription-plan-card__price-item span {
  display: block;
  margin-bottom: 4px;
  font-size: 12px;
  color: #6b7280;
}

.subscription-plan-card__price-item strong {
  font-size: 15px;
  font-weight: 800;
  color: #111827;
}

.subscription-plan-card__list {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 10px 12px;
  padding: 0 18px 18px;
  margin: 0;
}

.subscription-plan-card__list > div {
  min-height: 54px;
  padding: 10px 0 0;
  border-top: 1px solid rgba(15, 23, 42, 0.06);
}

.subscription-plan-card__list dt {
  margin-bottom: 4px;
  font-size: 12px;
  color: #6b7280;
}

.subscription-plan-card__list dd {
  margin: 0;
  font-size: 14px;
  font-weight: 700;
  color: #111827;
}

.subscription-plan-card__footer {
  display: flex;
  justify-content: space-between;
  align-items: center;
  gap: 10px;
  padding: 0 18px 18px;
}

.subscription-plan-card__actions {
  display: flex;
  gap: 8px;
  flex-wrap: wrap;
}

.plan-edit-panel {
  padding: 20px;
  border-radius: 18px;
  background: #f8fafc;
  border: 1px solid rgba(15, 23, 42, 0.06);
}

.plan-edit-panel .list-form-line + .list-form-line {
  margin-top: 14px;
}

.plan-edit-panel__note {
  margin-top: 18px;
  padding: 14px 16px;
  border-radius: 14px;
  background: #fff;
  border: 1px solid rgba(15, 23, 42, 0.06);
}

.plan-edit-panel__note-title {
  margin-bottom: 8px;
  font-size: 13px;
  font-weight: 800;
  color: #111827;
}

.plan-edit-panel__note ul {
  margin: 0;
  padding-left: 18px;
  color: #6b7280;
  font-size: 13px;
  line-height: 1.6;
}

.subscription-plan-card[data-plan-code="STARTER"]::before {
  background: linear-gradient(90deg, #64748b, #94a3b8);
}

.subscription-plan-card[data-plan-code="PRO"]::before {
  background: linear-gradient(90deg, #0ea5e9, #60a5fa);
}

.subscription-plan-card[data-plan-code="TEAM"]::before {
  background: linear-gradient(90deg, #14b8a6, #2dd4bf);
}

.subscription-plan-card[data-plan-code="BUSINESS"]::before {
  background: linear-gradient(90deg, #f59e0b, #f97316);
}

.subscription-plan-card__title-wrap {
  min-width: 0;
}

.subscription-plan-card__title-wrap .subscription-plan-card__title {
  word-break: keep-all;
}

@media (max-width: 991.98px) {
  .subscription-plan-toolbar__summary,
  .subscription-plan-toolbar__actions {
    flex: 1 1 100%;
  }

  .subscription-plan-toolbar__actions {
    justify-content: flex-start;
  }

  .subscription-plan-toolbar__search {
    width: 100%;
    max-width: none;
  }

  .subscription-plan-grid {
    grid-template-columns: repeat(auto-fill, minmax(260px, 1fr));
  }

  .subscription-plan-card__footer {
    flex-direction: column;
    align-items: stretch;
  }

  .subscription-plan-card__actions {
    width: 100%;
  }

  .subscription-plan-card__footer > .btn {
    width: 100%;
  }
}

@media (max-width: 575.98px) {
  .subscription-plan-page .list-search-box {
    padding: 16px;
  }

  .subscription-plan-toolbar__stat {
    min-width: calc(50% - 6px);
  }

  .subscription-plan-grid {
    grid-template-columns: 1fr;
  }

  .subscription-plan-card__top,
  .subscription-plan-card__price,
  .subscription-plan-card__list,
  .subscription-plan-card__footer,
  .plan-edit-panel {
    padding-left: 16px;
    padding-right: 16px;
  }

  .subscription-plan-card__top {
    padding-top: 16px;
  }
}

/* =========================================================
   No Result
========================================================= */
.no-results-warp {
  text-align: center;
  padding: 60px 0 100px;
}

.no-results-warp .visual {
  margin: 0 0 20px;
}

.no-results-warp .visual i {
  font-size: 6rem;
}

.no-results-warp .title {
  color: #5a5c69;
  font-weight: 800;
  font-size: 1.5rem;
  margin: 0 0 5px;
}

.no-results-warp .text {
  color: #b7b9cc;
  font-weight: 500;
  font-size: 1rem;
}

.no-results-warp.height-full {
  padding: 8% 0 10%;
}

/* =========================================================
   Series Edit
========================================================= */
.series-edit-warp {
  width: 100%;
}

.series-edit-warp .series-edit-list {
  float: left;
  width: 45%;
}

.series-edit-warp .series-edit-move {
  float: left;
  width: 10%;
  text-align: center;
  padding-top: 19%;
}

.series-edit-warp .series-edit-move button {
  display: block;
  width: 70%;
  margin: 10px auto;
}

.series-edit-warp .series-edit-add {
  float: left;
  width: 45%;
}

/* =========================================================
   Floating
========================================================= */
.floating-title-box {
  position: relative;
  margin-bottom: 20px;
  display: block;
  width: 100%;
  font-size: 1rem;
  font-weight: 400;
  line-height: 1.5;
  color: #6e707e;
  background-color: #fff;
  background-clip: padding-box;
  border: 1px solid #d1d3e2;
  border-radius: 0.35rem;
  transition: border-color 0.15s ease-in-out, box-shadow 0.15s ease-in-out;
}

.floating-title-box h6 {
  position: absolute;
  top: 0;
  left: 3px;
  height: auto;
  padding: 1rem 0.75rem 0 0.75rem;
  font-size: 14px;
  font-weight: 700;
  line-height: 1.5;
  color: #3c3d40;
  z-index: 10;
}

.floating-title-box .floating-cont {
  padding: 2.5rem 0.75rem 1rem;
}

.floating-cont.add-form form {
  display: inline-block;
}

.floating-cont .cb-add {
  position: relative;
  z-index: 100;
  color: #fff;
  background: #d1d3e2;
  cursor: pointer;
  border: 1px solid #d1d3e2;
  display: inline-block;
  padding: 1px 10px 0;
  margin: 3px;
  border-radius: 5px;
  height: 30px;
  line-height: 28px;
  font-size: 14px;
}

.floating-cont .cb-add i {
  margin-right: 5px;
}

/* =========================================================
   Tooltip
========================================================= */
.question-tooltip {
  position: relative;
  display: inline-block;
  /* background: #3c3d40; */
  color: var(--primary);
  font-size: 14px;
  padding: 2px 0 0;
  /* border-radius: 20px; */
  cursor: pointer;
}

.question-tooltip .tooltip-content {
  position: absolute;
  right: 0px;
  visibility: hidden;
  min-width: 200px;
  max-width: 350px;
  border-radius: 5px;
  background-color: var(--secondary);
  padding: 10px 15px;
  color: #fff;
  text-align: center;
  font-size: 12px;
  margin-top: 5px;
  z-index: 1;
  box-shadow: 0 17px 20px -18px rgba(0, 0, 0, 0.6);
  word-break: keep-all;
  font-weight: 400;
}

.question-tooltip:hover .tooltip-content {
  visibility: visible;
}

.question-tooltip.left .tooltip-content {
  top: -10px;
  right: 20px;
}

.tooltip-area {
  display: flex;
  align-items: center;
  justify-content: flex-start;
  gap: 5px;
}

.tooltip-area .form-check-inline {
  width: auto;
  display: flex;
  align-items: center;
  justify-content: flex-start;
  gap: 5px;
}

.tooltip-area .form-check-inline .form-check-label {
  width: 60px;
  display: inline-block;
}

/* =========================================================
   Switch / Toggle
========================================================= */
.toggle-switch {
  position: relative;
  top: 3px;
  display: inline-block;
  width: 52px;
  height: 20px;
  margin: 0;
}

.toggle-switch input[type="checkbox"],
.toggle-switch .switch-btn {
  display: none;
}

.switch-slider {
  position: absolute;
  inset: 0;
  cursor: pointer;
  background-color: #ced4da;
  transition: 0.25s ease;
  border-radius: 999px;
}

.switch-slider::before {
  content: "";
  position: absolute;
  left: 3px;
  top: 2px;
  width: 16px;
  height: 16px;
  background-color: #fff;
  border-radius: 50%;
  box-shadow: 0 2px 6px rgba(0, 0, 0, 0.15);
  transition: 0.25s ease;
}

.switch-slider::after {
  content: "OFF";
  display: inline-block;
  position: absolute;
  top: 50%;
  right: 8px;
  transform: translateY(-50%);
  font-size: 11px;
  font-weight: 700;
  color: #fff;
}

.switch-btn:checked + .switch-slider,
.toggle-switch input[type="checkbox"]:checked + label .toggle-track {
  background-color: var(--primary);
}

.switch-btn:checked + .switch-slider::before {
  transform: translateX(30px);
}

.switch-btn:checked + .switch-slider::after {
  content: "ON";
  left: 8px;
  right: auto;
  letter-spacing: normal;
}

.switch-btn:focus + .switch-slider {
  box-shadow: 0 0 1px var(--primary);
}

/* legacy toggle */
.toggle-track {
  display: inline-block;
  position: relative;
  font-size: 12px;
  width: 50px;
  height: 18px;
  line-height: 19px;
  border-radius: 60px;
  background: #8b8b8b;
}

.toggle-track::before {
  content: "";
  display: block;
  position: absolute;
  top: -6px;
  left: -10px;
  width: 20px;
  height: 20px;
  margin: 5px;
  background: #fff;
  border-radius: 100%;
  border: 1px solid #8b8b8b;
  transition: left 0.3s;
}

.toggle-switch label {
  display: inline-block;
  margin-bottom: 0;
}

.toggle-switch input[type="checkbox"] + label .toggle-track::after {
  content: "OFF";
  display: inline-block;
  position: absolute;
  right: 8px;
  color: #fff;
}

.toggle-switch input[type="checkbox"]:checked + label .toggle-track {
  left: -2px;
  background: #0d6efd;
}

.toggle-switch input[type="checkbox"]:checked + label .toggle-track::before {
  left: 30px;
  border: 1px solid #0d6efd;
}

.toggle-switch input[type="checkbox"]:checked + label .toggle-track::after {
  content: "ON";
  left: 5px;
}

/* =========================================================
   Checkbox Button
========================================================= */
.checkbox-btn {
  display: inline-block;
  position: relative;
}

.checkbox-btn input[type="checkbox"] {
  display: none;
}

.cb-btn {
  color: #202530;
  background: #fff;
  cursor: pointer;
  border: 1px solid #202530;
  display: inline-block;
  padding: 1px 20px 0;
  margin: 3px;
  border-radius: 5px;
  height: 30px;
  line-height: 28px;
  font-size: 14px;
}

.checkbox-btn input[type="checkbox"]:checked + label .cb-btn {
  color: #fff;
  background: #202530;
}

.checkbox-btn input[type="checkbox"]:checked + label .cb-btn::before {
  border: 1px solid #202530;
}

.notice-type-filter-group {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
}

.filter-second-row {
  margin-top: 18px;
}

.notice-type-filter-group .checkbox-btn {
  margin: 0;
}

.notice-type-filter-group .checkbox-btn .cb-btn {
  margin: 0;
}

.notice-type-filter-group .checkbox-btn input[type="checkbox"]:checked + .cb-btn {
  color: #fff;
  background: #202530;
}

.checkbox-btn.clear-btn {
  position: relative;
  z-index: 1;
}

.checkbox-btn.clear-btn label {
  margin-bottom: 0;
}

.checkbox-btn.clear-btn .cb-btn {
  text-align: left;
  padding: 1px 30px 0 15px;
}

.checkbox-btn.clear-btn .del-btn {
  position: absolute;
  top: 5px;
  right: 12px;
  cursor: pointer;
  font-style: normal;
  color: #202530;
  font-size: 12px;
  font-weight: 500;
  font-family: Arial, Helvetica, sans-serif;
}

.checkbox-btn.clear-btn .del-btn::after {
  content: "X";
  display: inline-block;
}

.checkbox-btn.clear-btn input[type="checkbox"]:checked + label .cb-btn,
.checkbox-btn.clear-btn input[type="checkbox"]:checked + label .cb-btn::before {
  display: none;
}

.file-layers {
  background: url(../images/file_list.png) no-repeat 0 53%;
  background-size: 14px;
  padding-left: 20px;
}

.checkbox-btn .cb-btn.file-layers,
.checkbox-btn.clear-btn .cb-btn.file-layers {
  background: url(../images/file_list.png) no-repeat 11px 53%;
  background-size: 14px;
  padding: 1px 30px 0;
}

/* =========================================================
   Utility Small Title / Block
========================================================= */
.sub-tit-sm {
  font-weight: 700;
  font-size: 14px;
}

.blok-list-box {
  margin: 0 0 30px;
  border: 1px solid #d1d3e2;
  border-radius: 0.35rem;
  padding: 1.2rem 1rem 0.5rem;
}

.blok-list-box .form-control-ex {
  font-size: 12px;
  display: inline-block;
  font-weight: 400;
}

.essential-mark{
  font-style: normal;
}

.mark-ess::after,
.essential-mark::after {
  content: "*";
  color: #ff0000;
  font-weight: 500;
}

.essential-mark::after {
  margin-left: 4px;
}

/* =========================================================
   Billing
========================================================= */
.bill-total-warp {
  margin-bottom: 20px;
}

.bill-total-warp ul {
  margin: 0;
  padding: 0;
}

.bill-total-warp .bill-card {
  background: #3c3d40;
  border-radius: calc(0.35rem - 1px);
  border: 1px solid #e3e6f0;
  display: block;
  clear: both;
  overflow: hidden;
}

.bill-total-warp .bill-card li {
  float: left;
  height: 100%;
  text-align: center;
}

.bill-total-warp .bill-card li i {
  color: #fff;
  display: block;
  margin-top: 60px;
  font-size: 40px;
}

.bill-total-warp .bill-card li dl {
  padding: 20px 20px 3px;
  margin: 20px 20px 15px;
  background: #fff;
  border-radius: calc(0.35rem - 1px);
}

.bill-total-warp .bill-card li dl dt {
  text-align: left;
}

.bill-total-warp .bill-card li dl dt span {
  font-size: 12px;
  font-weight: normal;
}

.bill-total-warp .bill-card li dl dd {
  text-align: right;
  font-size: 34px;
  font-weight: 800;
}

.bill-total-warp .bill-card li dl dd em {
  font-style: normal;
  font-size: 24px;
  font-weight: 700;
  position: relative;
  top: -2px;
}

.bill-total-warp .bill-card li:nth-child(1) {
  width: 30%;
}
.bill-total-warp .bill-card li:nth-child(2) {
  width: 3%;
}
.bill-total-warp .bill-card li:nth-child(3) {
  width: 30%;
}
.bill-total-warp .bill-card li:nth-child(4) {
  width: 3%;
}
.bill-total-warp .bill-card li:nth-child(5) {
  width: 34%;
}

.bill-total-warp .bill-total-description {
  font-size: 14px;
  color: #fff;
  padding: 0 25px;
}

.bill-total-warp .bill-total-description span {
  float: right;
}

/* =========================================================
   Thumb / Image
========================================================= */
img.check-needed {
  width: 20px;
  height: 20px;
}

.thumb-img {
  display: inline-block;
  width: 45px;
  border-radius: 5px;
  overflow: hidden;
  margin: 0 auto;
}

.thumb-img img {
  width: 100%;
}

.thumb-img span {
  display: none;
}

.thumb-img.w100 {
  width: 100px;
}

.thumb-img.w200 {
  width: 200px;
}

.thumb-display {
  width: 120px;
  height: 40px;
  margin: 0 auto;
  overflow: hidden;
  border: 1px solid #ccc;
  background: #f7f9fa;
  position: relative;
}

.thumb-display.pc {
  width: 120px;
  height: 60px;
}

.thumb-display.mo {
  width: 50px;
  height: 60px;
}

.thumb-display.store {
  width: 70px;
  height: 48px;
}

.thumb-display.popup {
  width: 55px;
  height: 60px;
}

.thumb-display img {
  width: 100%;
  height: 100%;
}

.thumb-display .default-label {
  position: absolute;
  top: 3px;
  left: 2px;
  background-color: #444946;
  color: #fff;
  padding: 2px 4px;
  border-radius: 5px;
  font-size: 12px;
  font-weight: bold;
}

.company-logo-thumb {
  width: 120px;
  height: 60px;
  border: 1px solid #c3c4c7;
}

.company-logo-thumb img {
  width: 100%;
  height: 100%;
  object-fit: fill;
}

/* =========================================================
   Note Editor
========================================================= */
.note-toolbar.card-header {
  background: #f5f5f5;
  border-radius: 5px 5px 0 0;
}

.note-toolbar.card-header .btn {
  font-size: 12px;
  background: #fff;
}

.note-editor .note-toolbar > .note-btn-group {
  margin-right: 0;
}

.note-editor .note-toolbar {
  padding: 0 0 5px;
}

/* =========================================================
   Analysis
========================================================= */
.analysis-details-warp {
  border: 1px solid #5a5ad4;
  padding: 20px 30px;
  border-radius: calc(0.35rem - 1px);
}

.analysis-details-warp .sub-title {
  font-size: 14px;
  font-weight: 700;
  padding: 10px 0 5px;
  list-style-type: disc;
}

.analysis-details .table-bordered tbody tr th {
  background: #f8f9fc;
}

.analysis-details .table-bordered tbody tr td {
  background: #fff;
}

.analysis-details .table th,
.analysis-details .table td {
  padding: 0.5rem;
}

.analysis-details-box .cont-tit {
  font-size: 14px;
  color: #3c3d40;
  font-weight: 400;
}

.analysis-details-box .cont-box {
  border: 1px solid #e3e6f0;
  padding: 10px;
  margin: 5px 0 20px;
  background: #fff;
}

.analysis-details-box .cont-box span {
  background-color: #66ccff;
  padding: 3px 10px;
  font-weight: 400;
  display: inline-block;
  margin: 2px 3px;
}

.analysis-details-box .cont-box span.nodata {
  background-color: #fff;
  font-size: 14px;
  padding: 3px;
}

/* =========================================================
   Graph
========================================================= */
.mygraph-warp {
  padding: 0 0 0 20px;
}

.mygraph-warp .graph {
  width: 100%;
  height: 150px;
  border-bottom: 1px solid #ccc;
  border-left: 1px solid #ccc;
  margin: 20px auto 10px;
  padding: 0 0 0 5px;
}

.mygraph-warp-nodata {
  padding-top: 150px;
  text-align: center;
}

.mygraph-warp .graph .graph-bar {
  position: relative;
  width: 6%;
  margin-left: 3.5%;
  height: 100%;
  background: #fff;
  display: inline-block;
  overflow: hidden;
  clear: both;
}

.mygraph-warp .graph .graph-bar .bar {
  display: block;
  margin: 0 auto;
  width: 100%;
  position: absolute;
  bottom: 0;
  background: #e6ebef;
  cursor: pointer;
  border-top-left-radius: calc(1rem - 1px);
  border-top-right-radius: calc(1rem - 1px);
}

.mygraph-warp .graph .graph-bar .bar:hover {
  background: #dbe4ec;
}

.mygraph-warp .graph .graph-bar .bar.on {
  background: #5a5ad4;
}

.mygraph-warp .graph .graph-bar .bar.on:hover {
  background: #4e73df;
}

.cont-box .mygraph-cont-box {
  padding: 35px 5px 0 0;
}

.mygraph-warp .graph-x {
  font-size: 14px;
  font-weight: 700;
}

.mygraph-warp .graph-x .left {
  float: left;
}

.mygraph-warp .graph-x .right {
  float: right;
}

/* =========================================================
   Table Card List
========================================================= */
.table-cardlist .table {
  border: 1px solid #47525c;
}

.table-cardlist .table tr th {
  background: rgb(42, 45, 62) !important;
  color: #fff;
  font-weight: 400;
  font-size: 16px;
  padding: 1rem;
  border-color: #47525c;
}

.table-cardlist .table tr td {
  background: #47525c;
  color: #fff;
  font-size: 16px;
  padding: 1rem;
  border-color: rgb(42, 45, 62);
}

/* =========================================================
   Choice List
========================================================= */
.choice-list tr {
  cursor: pointer;
}

.choice-list tr.select {
  background-color: #5a5ad4 !important;
}

.choice-list tr.select td {
  border: 1px solid #5a5ad4;
  font-weight: 800;
  color: #fff;
}

.choice-list tr.off {
  background-color: #eaecf4 !important;
  cursor: default;
}

/* =========================================================
   Processing
========================================================= */
.processing-data-area {
  max-width: 300px;
  font-size: 18px;
  font-weight: 700;
  margin: 0 auto 10px;
  position: relative;
}

.processing-data-area img {
  width: 100%;
}

.processing-data-area dd {
  text-align: center;
  position: absolute;
  bottom: 0;
  width: 100%;
}

table tbody tr.closing td {
  background: #dee2e6;
  color: #8899b3;
}

/* =========================================================
   Login / Member
========================================================= */
.login-warp {
  margin-top: 20%;
}

.login-area {
  border-left: 1px solid #eee;
  background: #f8f9fc;
}

.member-bg {
  background: #f3feff;
}

.member-bg .contents {
  margin-top: 0;
}

.member-page {
  min-height: 100vh;
  display: flex;
  flex-direction: column;
}

.member-page__home-link {
  display: inline-flex;
  align-items: center;
  gap: 7px;
  font-size: 13px;
  font-weight: 600;
  color: #4b6570;
  text-decoration: none;
  line-height: 1;
  padding: 6px 0;
}

.member-page__home-link:hover {
  color: var(--primary);
  text-decoration: none;
}

.member-page__home-link i {
  font-size: 12px;
}

.member-wrapper {
  flex: 1;
  min-height: 0;
  padding: 10px 24px 32px;
  width: 100%;
  display: flex;
  align-items: center;
  justify-content: center;
}

.member-wrapper .member-warp {
  position: relative;
  min-width: 520px;
  padding: 50px 100px;
  border-radius: 30px;
  border: 1px solid rgba(0, 0, 0, 0.1);
  background: #fff;
  box-shadow: 0 0 20px 0 rgba(0, 0, 0, 0.05);
}

.member-page__home-link--inside {
  position: absolute;
  top: 24px;
  right: 28px;
  z-index: 1;
}

.member-wrapper .member-warp .member-warp-title {
  font-size: 30px;
  font-weight: 700;
  padding-bottom: 20px;
  color: #19373d;
}

.member-wrapper .member-warp .member-warp-title .logo {
  width: 250px;
  height: 71px;
  margin: 0 auto 5px;
  background: url(../images/logo.png) no-repeat 0 0;
  background-size: 100%;
}

@media (max-width: 767.98px) {
  .member-page__home-link {
    font-size: 13px;
  }

  .member-wrapper .member-warp {
    min-width: 100%;
    padding: 40px 24px;
  }

  .member-page__home-link--inside {
    top: 18px;
    right: 18px;
  }

  .member-wrapper {
    align-items: flex-start;
    padding: 12px 16px 32px;
  }
}

.public-page {
  min-height: 100vh;
  background: linear-gradient(180deg, #f3feff 0%, #ffffff 100%);
}

.public-page__header {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 24px;
  padding: 20px 32px;
  background: rgba(255, 255, 255, 0.76);
  border-bottom: 1px solid rgba(25, 55, 61, 0.08);
  backdrop-filter: blur(10px);
}

.public-page__brand {
  display: inline-flex;
  align-items: center;
  color: #19373d;
  text-decoration: none;
}

.public-page__brand:hover {
  color: #19373d;
  text-decoration: none;
}

.public-page__brand-logo {
  width: 176px;
  height: 50px;
  background: url(../images/logo.png) no-repeat 0 0;
  background-size: 100%;
}

.public-page__nav {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 18px;
  flex: 1;
}

.public-page__nav-link {
  padding: 8px 12px;
  color: #19373d;
  font-size: 18px;
  font-weight: 700;
  text-decoration: none;
}

.public-page__nav-link:hover,
.public-page__nav-link--active {
  color: #2049ff;
  text-decoration: none;
}

.public-page__actions {
  display: flex;
  justify-content: flex-end;
  min-width: 120px;
}

.public-page__login-link {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  padding: 10px 16px;
  border-radius: 999px;
  background: #19373d;
  color: #fff;
  font-weight: 600;
  text-decoration: none;
}

.public-page__login-link:hover {
  color: #fff;
  text-decoration: none;
  opacity: 0.92;
}

.public-page__body {
  width: min(1180px, calc(100% - 48px));
  margin: 0 auto;
  padding: 56px 0 88px;
}

.public-page__hero {
  display: grid;
  grid-template-columns: minmax(0, 1.1fr) minmax(320px, 420px);
  gap: 28px;
  align-items: stretch;
  padding: 20px 0 64px;
}

.public-page__hero-copy h1 {
  margin: 8px 0 16px;
  font-size: clamp(38px, 5vw, 58px);
  line-height: 1.08;
  letter-spacing: -0.03em;
  color: #19373d;
}

.public-page__eyebrow,
.public-page__section-eyebrow,
.pricing-page__eyebrow {
  margin: 0;
  font-size: 13px;
  font-weight: 700;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  color: #1590b2;
}

.public-page__hero-text,
.pricing-page__intro {
  margin: 0;
  max-width: 580px;
  font-size: 18px;
  line-height: 1.7;
  color: #5b6b73;
}

.public-page__hero-actions {
  display: flex;
  gap: 12px;
  margin-top: 28px;
}

.public-page__cta {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-width: 168px;
  min-height: 52px;
  padding: 0 20px;
  border-radius: 16px;
  font-weight: 700;
  text-decoration: none;
}

.public-page__cta:hover {
  text-decoration: none;
}

.public-page__cta--primary {
  background: #19373d;
  color: #fff;
}

.public-page__cta--primary:hover {
  color: #fff;
}

.public-page__cta--secondary {
  border: 1px solid rgba(25, 55, 61, 0.14);
  background: rgba(255, 255, 255, 0.86);
  color: #19373d;
}

.public-page__hero-panel {
  padding: 32px;
  border: 1px solid rgba(32, 73, 255, 0.12);
  border-radius: 28px;
  background: linear-gradient(180deg, rgba(255, 255, 255, 0.98) 0%, rgba(237, 247, 250, 0.98) 100%);
}

.public-page__hero-badge {
  display: inline-flex;
  padding: 8px 12px;
  border-radius: 999px;
  background: rgba(32, 73, 255, 0.08);
  color: #2049ff;
  font-size: 13px;
  font-weight: 700;
}

.public-page__hero-list {
  margin: 24px 0 0;
  padding: 0;
  list-style: none;
}

.public-page__hero-list li {
  position: relative;
  padding-left: 18px;
  font-size: 17px;
  line-height: 1.8;
  color: #2d4650;
}

.public-page__hero-list li::before {
  content: "";
  position: absolute;
  top: 12px;
  left: 0;
  width: 7px;
  height: 7px;
  border-radius: 50%;
  background: #1590b2;
}

.public-page__section {
  padding: 32px 0;
}

.public-page__section-head h2,
.pricing-page__hero h1 {
  margin: 10px 0 0;
  font-size: clamp(30px, 4vw, 44px);
  line-height: 1.18;
  letter-spacing: -0.03em;
  color: #19373d;
}

.public-page__feature-grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 18px;
  margin-top: 28px;
}

.public-page__feature,
.public-page__review {
  padding: 28px;
  border-radius: 24px;
  background: rgba(255, 255, 255, 0.88);
  border: 1px solid rgba(25, 55, 61, 0.08);
}

.public-page__feature h3 {
  margin: 0 0 10px;
  font-size: 22px;
  color: #19373d;
}

.public-page__feature p,
.public-page__review p {
  margin: 0;
  font-size: 16px;
  line-height: 1.75;
  color: #5b6b73;
}

.public-page__inline-link {
  display: inline-flex;
  margin-top: 18px;
  color: #2049ff;
  font-size: 15px;
  font-weight: 700;
  text-decoration: none;
}

.public-page__inline-link:hover {
  color: #2049ff;
  text-decoration: none;
}

.public-page__section--reviews {
  padding-bottom: 0;
}

.public-page__section--top {
  padding-top: 8px;
}

.public-page__review-list {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 18px;
  margin-top: 28px;
}

.public-page__review-list--stacked {
  grid-template-columns: 1fr;
}

.public-page__review strong {
  display: inline-block;
  margin-top: 18px;
  font-size: 14px;
  color: #19373d;
}

.public-page--pricing {
  background: linear-gradient(180deg, #f6fbfd 0%, #ffffff 100%);
}

.pricing-page {
  width: min(1280px, calc(100% - 48px));
  margin: 0 auto;
  padding: 56px 0 96px;
}

.pricing-page__hero {
  max-width: 840px;
}

.pricing-page__plans {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 22px;
  margin-top: 36px;
}

.pricing-plan {
  position: relative;
  display: flex;
  flex-direction: column;
  min-height: 100%;
  border: 1px solid rgba(25, 55, 61, 0.08);
  border-radius: 28px;
  background: #fff;
  overflow: hidden;
  box-shadow: 0 14px 36px rgba(16, 42, 56, 0.06);
}

.pricing-plan__head {
  padding: 42px 32px;
  background: #eef2f4;
  text-align: center;
}

.pricing-plan__head h2 {
  margin: 0;
  font-size: clamp(26px, 2.5vw, 36px);
  color: #2c4450;
}

.pricing-plan__head--featured {
  background: #1f7b42;
}

.pricing-plan__head--featured h2 {
  color: #fff;
}

.pricing-plan__head--annual {
  background: #e7f9fb;
}

.pricing-plan__price {
  padding: 28px 32px 20px;
  border-bottom: 1px solid rgba(25, 55, 61, 0.08);
  text-align: center;
  font-size: clamp(36px, 4vw, 52px);
  font-weight: 800;
  line-height: 1.1;
  color: #203c4c;
}

.pricing-plan__price-unit {
  font-size: 0.72em;
}

.pricing-plan--featured {
  border-color: rgba(31, 123, 66, 0.5);
  transform: translateY(-10px);
}

.pricing-plan__badge {
  position: absolute;
  top: 16px;
  right: 18px;
  padding: 8px 10px;
  border-radius: 12px;
  background: #ff8c2f;
  color: #fff;
  font-size: 12px;
  font-weight: 700;
}

.pricing-plan__badge--sale {
  background: #ff2d2d;
}

.pricing-plan__price--stacked {
  display: flex;
  flex-direction: column;
  gap: 4px;
  font-size: 18px;
}

.pricing-plan__discounted {
  color: #7c8b92;
  text-decoration: line-through;
}

.pricing-plan__sale {
  color: #ff3a3a;
  font-weight: 700;
}

.pricing-plan__price--stacked strong {
  font-size: clamp(34px, 4vw, 50px);
  line-height: 1.12;
  color: #203c4c;
}

.pricing-plan__features {
  flex: 1;
  margin: 0;
  padding: 28px 32px 20px 52px;
  list-style: none;
}

.pricing-plan__features li {
  position: relative;
  margin-bottom: 18px;
  font-size: 16px;
  line-height: 1.7;
  color: #536670;
}

.pricing-plan__features li::before {
  content: "✓";
  position: absolute;
  left: -22px;
  top: 0;
  color: #4f6270;
  font-weight: 700;
}

.pricing-plan__action {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  margin: 0 32px 32px;
  min-height: 64px;
  border-radius: 18px;
  background: #0f90a6;
  color: #fff;
  font-size: 18px;
  font-weight: 700;
  text-decoration: none;
}

.pricing-plan__action:hover {
  color: #fff;
  text-decoration: none;
}

.pricing-plan__action--muted {
  background: #dfe3e6;
  color: #2b4450;
}

.pricing-plan__action--muted:hover {
  color: #2b4450;
}

.pricing-plan__action--featured {
  background: #2fb561;
}

.pricing-page__notes {
  margin-top: 28px;
  padding: 28px 32px;
  border-radius: 26px;
  background: #fff4c9;
}

.pricing-page__notes-list {
  margin: 0;
  padding-left: 24px;
}

.pricing-page__notes-list li {
  margin-bottom: 12px;
  font-size: 16px;
  line-height: 1.7;
  color: #3a4044;
}

.pricing-page__notes-link {
  margin: 8px 0 0;
  font-size: 16px;
  color: #3a4044;
}

.pricing-page__notes-link a {
  color: #2049ff;
}

@media (max-width: 767.98px) {
  .public-page__header {
    flex-wrap: wrap;
    gap: 14px;
    padding: 18px 16px;
  }

  .public-page__brand-logo {
    width: 140px;
    height: 40px;
  }

  .public-page__nav {
    order: 3;
    width: 100%;
    justify-content: space-between;
    gap: 8px;
  }

  .public-page__nav-link {
    padding: 4px 0;
    font-size: 16px;
  }

  .public-page__actions {
    min-width: auto;
  }

  .public-page__login-link {
    padding: 9px 14px;
    font-size: 14px;
  }

  .public-page__body {
    width: calc(100% - 32px);
    padding: 32px 0 56px;
  }

  .public-page__hero {
    grid-template-columns: 1fr;
    gap: 20px;
    padding: 8px 0 40px;
  }

  .public-page__hero-copy h1 {
    font-size: 36px;
  }

  .public-page__hero-text,
  .pricing-page__intro {
    font-size: 16px;
  }

  .public-page__hero-actions {
    flex-direction: column;
  }

  .public-page__cta {
    width: 100%;
  }

  .public-page__hero-panel {
    padding: 24px;
    border-radius: 22px;
  }

  .public-page__section {
    padding: 22px 0;
  }

  .public-page__section-head h2,
  .pricing-page__hero h1 {
    font-size: 28px;
  }

  .public-page__feature-grid,
  .public-page__review-list,
  .pricing-page__plans {
    grid-template-columns: 1fr;
  }

  .pricing-page {
    width: calc(100% - 32px);
    padding: 32px 0 64px;
  }

  .pricing-plan--featured {
    transform: none;
  }

  .pricing-plan__head {
    padding: 32px 20px;
  }

  .pricing-plan__price {
    padding: 22px 20px 18px;
  }

  .pricing-plan__features {
    padding: 24px 20px 16px 42px;
  }

  .pricing-plan__action {
    margin: 0 20px 20px;
    min-height: 56px;
  }

  .pricing-page__notes {
    padding: 22px 20px;
  }
}

.member-wrapper .member-warp .member-warp-text {
  margin-bottom: 20px;
  word-break: keep-all;
  text-align: center;
  font-weight: 600;
}

.member-wrapper .member-warp .member-type {
  margin-bottom: 23px;
  display: flex;
  justify-content: center;
}

.member-wrapper .member-warp .member-input-group form {
  width: 100%;
  display: flex;
  flex-direction: column;
  justify-content: center;
  align-items: center;
  gap: 10px;
}

.member-wrapper .member-warp .member-input-group .form-control {
  border-radius: 4px;
  border: 1px solid #ced2e0;
  background: #fff;
  color: #19373d;
  height: 50px;
  padding: 0 12px 0 15px;
}

.member-wrapper .member-warp .member-input-group .btn-primary {
  padding: 15px 20px;
  width: 100%;
  font-weight: 600;
  font-size: 16px;
}

.member-wrapper .member-warp .form-check label {
  cursor: pointer;
}

.member-btn {
  background-color: var(--primary);
  border: 1px solid var(--primary);
  padding: 16px 0 14px;
  font-size: 18px;
  color: #fff !important;
  font-weight: 700;
}

.member-btn:hover {
  background-color: var(--primary);
  border: 1px solid var(--primary);
  color: #fff;
}

.member-btn:focus,
.member-btn.focus {
  box-shadow: 0 0 0 0.2rem rgba(255, 163, 163, 0.3);
}

.member-btn:not(:disabled):not(.disabled):active,
.member-btn:not(:disabled):not(.disabled).active {
  background-color: #e11826;
  border-color: #e11826;
}

.member-btn:not(:disabled):not(.disabled):active:focus,
.member-btn:not(:disabled):not(.disabled).active:focus {
  box-shadow: 0 0 0 0.2rem rgba(255, 163, 163, 0.3);
}

.member-btn-error {
  color: #fff;
  font-weight: 700;
  background: var(--primary);
  padding: 0.75rem 2.5rem;
  font-size: 1rem;
  border-radius: 0.35rem;
  text-decoration: none;
}

.input-essential-mark {
  color: #d62516;
  padding-left: 5px;
  display: inline-block;
}

.text-link {
  color: #0d6efd;
  text-decoration: underline;
}

.text-blank-link {
  color: #3c3d40;
}

.text-blank-link em {
  font-style: normal;
}

.text-blank-link i {
  opacity: 0.7;
  font-size: 12px;
  position: relative;
  top: -1px;
  right: -3px;
}
.link{
  color: var(--primary);
}

.link-icon-right {
  display: inline-block;
  background: url(../images/icon_link.svg) no-repeat 100% 3px;
  background-size: 12px;
  padding-right: 16px;
}

.link-underline {
  display: inline-block;
  text-decoration: underline !important;
  color: #212529;
}

.account-user-table {
  table-layout: fixed;
  width: 100%;
}

.account-user-table th,
.account-user-table td {
  text-align: center;
}

.account-user-table th:nth-child(1),
.account-user-table td:nth-child(1),
.account-user-table th:nth-child(2),
.account-user-table td:nth-child(2),
.account-user-table th:nth-child(3),
.account-user-table td:nth-child(3) {
  text-align: left;
}

.account-user-table td:nth-child(1),
.account-user-table td:nth-child(2),
.account-user-table td:nth-child(3),
.account-user-table td:nth-child(7),
.account-user-table td:nth-child(8) {
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}

.account-user-table td:nth-child(4),
.account-user-table td:nth-child(5),
.account-user-table td:nth-child(6),
.account-user-table td:nth-child(9),
.account-user-table td:nth-child(10) {
  white-space: nowrap;
}

/* =========================================================
   Nav Icon / Sort
========================================================= */

.btn-th-sort {
  margin-left: 8px;
  padding: 2px 3px 0;
  position: relative;
  top: 2px;
  width: 14px;
  height: 14px;
  display: inline-block;
  background: url(../images/btn-arrow-none.png) no-repeat 50% 50%;
  background-size: cover;
}

.btn-th-sort.up {
  background: url(../images/btn-arrow-up.png) no-repeat 50% 50%;
  background-size: cover;
}

.btn-th-sort.down {
  background: url(../images/btn-arrow-down.png) no-repeat 50% 50%;
  background-size: cover;
}

/* =========================================================
   Divider
========================================================= */
.divider {
  display: block;
  text-align: center;
  margin: 1rem 0;
  overflow: hidden;
  white-space: nowrap;
}

.divider .divider-text {
  position: relative;
  display: inline-block;
  font-size: 0.8rem;
  padding: 0 1rem;
  color: #6e707e;
}

.divider .divider-text::before,
.divider .divider-text::after {
  content: "";
  position: absolute;
  top: 50%;
  width: 100vw;
  border-top: 1px solid rgba(67, 89, 113, 0.2);
}

.divider .divider-text::before {
  right: 100%;
}

.divider .divider-text::after {
  left: 100%;
}

/* =========================================================
   Class Detail
========================================================= */
.table-borderless .title-label {
  text-align: left;
}

.class-detail-cont .class-detail-box {
  border: 1px solid #dbdee6;
  background: #e3e6f0;
  border-radius: 5px;
  padding: 1.5rem 1.5rem 0.5rem;
  margin-bottom: 1rem;
  text-align: center;
}

.class-detail-cont .class-detail-box h5 {
  font-weight: 700;
  font-size: 18px;
  padding-bottom: 5px;
}

.class-detail-cont .class-detail-box ul {
  padding: 0;
}

.class-detail-cont .class-detail-box ul li {
  background: #fff;
  border: 1px solid #fff;
  margin: 10px 0;
  padding: 10px 0;
  border-radius: 20px;
}

.class-detail-cont .class-detail-box ul li:hover {
  border: 1px solid #405f71;
  font-weight: 700;
  cursor: pointer;
}

.class-detail-cont .class-detail-box ul li.on,
.class-detail-cont .class-detail-box ul li.on:hover {
  border: 1px solid #405f71;
  background: #405f71;
  color: #fff;
  font-weight: 700;
}

.class-detail-cont .class-detail-box-cont {
  border: 1px solid #405f71;
  background: #405f71;
  color: #fff;
  padding: 1rem;
  margin-top: 1.5rem;
}

.class-detail-cont .class-detail-box-cont h6 {
  font-weight: 700;
  font-size: 18px;
}

.class-detail-cont .class-detail-box .accordion-header .accordion-button {
  background: #fff;
  border: 1px solid #fff;
  display: block;
  width: 100%;
  margin: 10px 0;
  padding: 10px 0;
  border-radius: 20px;
  font-size: 16px;
}

.class-detail-cont .class-detail-box .accordion-body {
  font-size: 14px;
}

.unit-objective-title {
  font-size: 18px;
  width: 100px;
  height: 100px;
  padding-top: 32px;
  border-radius: 100px;
  line-height: 120%;
  font-weight: 700;
  text-align: center;
  background: #ede6ff;
  color: var(--primary);
}

.unit-objective-text {
  font-size: 16px;
  line-height: 140%;
}

.class-code-summary {
  display: inline-block;
}

.class-code-summary ul {
  padding: 7px 0 0;
}

.class-code-summary ul li {
  float: left;
  font-size: 16px;
  padding-right: 10px;
}

.class-code-summary ul li p {
  display: inline-block;
  margin: 0;
  padding: 0 13px 0 10px;
  font-weight: 700;
  line-height: 15px;
  border-right: 1px solid #5a5c69;
}

.class-code-summary ul li p:last-child {
  border: none;
}

.class-code-summary ul li p span {
  display: inline-block;
  padding: 0 1px 0 7px;
}

.class-code-summary ul li p span.point,
.class-code-summary ul li p span.text-assigned {
  color: var(--primary);
}

.class-code-summary ul li p span.text-unused {
  color: #0057ff;
}

.class-code-summary ul li p span.text-used {
  color: #62666a;
}

/* =========================================================
   Give Exam / Rules / Week Slider
========================================================= */
.give-exam-warp .data-text-area {
  font-size: 18px;
  line-height: 30px;
  min-width: 300px;
  background: #f8f8f8;
  box-shadow: rgba(60, 64, 67, 0.3) 0 1px 2px 0,
    rgba(60, 64, 67, 0.15) 0 1px 3px 1px;
  text-align: center;
  border: 3px solid #dfe1e2;
  margin-bottom: 20px;
  display: inline-block;
  padding: 15px 50px;
}

.give-exam-warp .data-text-area .text-amount {
  display: inline-block;
  font-size: 26px;
  line-height: 30px;
  min-width: 40px;
  padding: 0 5px;
  font-weight: 800;
  text-align: right;
  position: relative;
  top: 3px;
}

.give-exam-warp .data-text-area .text-amount.red {
  color: var(--primary);
}

.give-exam-warp .guide-text {
  color: var(--primary);
}

.rules-warp {
  padding: 1rem;
}

.rules-warp .rules-head {
  margin-bottom: 50px;
}

.rules-warp .rules-foot {
  background: #dbe1e5;
  padding: 20px 30px;
  border-radius: 5px;
}

.rules-warp .rules-cont h5 {
  font-size: 1rem;
  font-weight: 700;
}

.rules-warp .rules-cont .rules-text {
  word-break: keep-all;
  font-size: 14px;
  font-weight: 500;
  margin-bottom: 1.25rem;
}

.rules-warp .rules-cont .rules-text ul {
  padding: 0;
}

.rules-warp .rules-cont .rules-text ul li {
  padding-bottom: 10px;
}

.rules-warp .rules-cont .rules-text strong {
  font-weight: 400;
  display: block;
  margin-bottom: 5px;
}

.rules-warp .rules-cont .rules-text ol {
  padding: 7px 0 0 30px;
}

.rules-warp .rules-cont .rules-text ol li {
  padding: 0 0 3px;
  list-style: decimal;
}

.rules-warp .rules-cont .rules-text ol li:last-child {
  padding-bottom: 0;
}

.week-slide-warp {
  text-align: center;
}

.week-slide-area h4 {
  display: inline-block;
  margin: 0 10px;
  font-size: 32px;
  font-weight: 700;
}

.week-slide-area a {
  opacity: 0.5;
  font-size: 26px;
  display: inline-block;
  padding: 0 5px 5px;
  position: relative;
  top: -2px;
}

.week-slide-area a:hover {
  opacity: 1;
}

/* =========================================================
   Card Body Sub Title
========================================================= */
.card-body-sub-title {
  font-weight: 700;
}

.card-body-sub-title span {
  font-weight: 400;
  padding: 0 0 0 5px;
  display: inline-block;
  font-size: 16px;
}

.card-body-sub-title .right-area {
  float: right;
}

.card-body-sub-title .right-area span {
  font-weight: 400;
  font-size: 14px;
}

.mail-settings-panel .card-body{
  min-height: 300px;
}

.mail-recipient-create-panel {
    padding: 18px;
    margin-bottom: 18px;
    border: 1px solid rgba(15, 23, 42, 0.08);
    border-radius: 18px;
    background: linear-gradient(180deg, #fbfdff 0%, #f7fafc 100%);
  }
  
  .mail-recipient-create-panel__head {
    display: flex;
    flex-direction: column;
    gap: 6px;
    margin-bottom: 14px;
  }
  
  .mail-recipient-create-panel__head strong {
    display: block;
    margin-top: 2px;
    font-size: 18px;
    font-weight: 800;
    color: #111827;
  }
  
  .mail-recipient-create-panel__note {
    margin: 0;
    color: #6b7280;
    font-size: 13px;
    line-height: 1.5;
  }
  
  .mail-recipient-list-section {
    margin-top: 20px;
  }
  
  .section-title-row {
    display: flex;
    align-items: baseline;
    justify-content: space-between;
    gap: 12px;
    margin-bottom: 10px;
  }
  
  .section-title {
    margin: 0;
    font-size: 16px;
    font-weight: 800;
    color: #111827;
  }
  
  .section-count {
    font-size: 13px;
    font-weight: 700;
    color: #6b7280;
  }
  
  .section-count strong {
    color: #111827;
  }
  
  .mail-recipient-summary-wrap {
    max-height: 240px;
    overflow: auto;
  }
  
  .mail-recipient-empty {
    margin-bottom: 12px;
  }
  
  .recipient-table-wrap .recipient-table tr.is-selected {
    background: rgba(21, 170, 188, 0.04);
  }
  
  .recipient-table-wrap .recipient-table tr.is-selected td {
    color: #64748b;
  }
  
  .recipient-table-wrap .recipient-table tr.is-selected td:first-child {
    font-weight: 700;
  }
  
  

/* =========================================================
   Canvas / Error
========================================================= */
.myCanvas ul {
  padding: 0;
}

.myCanvas ul li {
  float: left;
}

.myCanvas ul li:nth-child(1) {
  width: 30%;
}

.myCanvas ul li:nth-child(2) {
  width: 70%;
}

.error-cont-area dl {
  text-align: center;
}

.error-cont-area dl dt {
  max-width: 400px;
  width: 70%;
  margin: 0 auto 30px;
}

.error-cont-area dl dt img {
  width: 100%;
  max-width: 300px;
}

.error-cont-area dl dd {
  font-size: 16px;
  padding: 0 30px;
  word-break: keep-all;
  line-height: 180%;
}

.error-cont-area dl dd p {
  font-size: 32px;
  padding: 10px 0;
  font-weight: 700;
  font-family: "Pretendard";
}

.error-cont-area dl dd span {
  font-size: 18px;
  line-height: 140%;
}

.error-cont-area dl dd .btn {
  max-width: 200px;
  width: 100%;
}

.error-cont-area dl dd a {
  background: #fffecd;
  color: #000;
  display: inline-block;
  padding: 0 5px;
  border-radius: 3px;
}

.error-cont-area dl dd a:hover {
  color: #000;
}

.error-cont-area .btn-primary {
  padding: 15px 20px;
  width: 100%;
  font-weight: 600;
}

/* =========================================================
   Print / Worksheet
========================================================= */
.modal-print-warp .print-preview-area {
  float: left;
  width: 70%;
  height: 750px;
  overflow: hidden;
  overflow-y: scroll;
}

.print-preview-area .print-preview ul {
  padding: 20px 0 30px 20px;
  margin: 0;
}

.print-preview-area .print-preview ul li {
  width: 32%;
  display: inline-block;
}

.print-preview-area .print-preview .print-thumb-box {
  display: block;
  padding: 20px;
}

.print-preview-area .print-preview .print-thumb-box p {
  display: block;
  font-size: 1.1rem;
  text-align: center;
  font-weight: 700;
  color: #3c3d40;
  padding: 0 0 10px;
  margin: 0;
}

.print-preview-area .print-preview ul.print-final {
  padding: 0 0 0 10px;
  margin: 0;
}

.print-preview-area .print-preview ul.print-final li {
  width: 100%;
  display: inline-block;
  vertical-align: top;
}

.print-preview-area .print-preview .print-thumb {
  position: relative;
  cursor: pointer;
}

.print-preview-area .print-preview .print-thumb .thumb-img-box {
  width: 130px;
  height: 197px;
  border: 1px solid #ccc;
}

.print-preview-area .print-preview .print-thumb img,
.print-preview-area .print-preview .print-thumb-box img {
  width: 100%;
}

.print-preview-area .print-preview .print-thumb-box img {
  opacity: 0.8;
}

.print-preview-area .print-preview .print-thumb-box.on img {
  opacity: 1;
}

.print-preview-area .print-preview .print-thumb .check-box {
  position: absolute;
  top: 36%;
  left: 50%;
}

.print-preview-area .print-preview .print-thumb .check-box span {
  position: relative;
  top: -50%;
  left: -50%;
  width: 70px;
  height: 70px;
  text-align: center;
  border-radius: 100px;
  background: #4e73df;
  display: block;
}

.print-preview-area .print-preview .print-thumb .check-box span i {
  color: #fff;
  font-size: 2rem;
  line-height: 70px;
}

.modal-print-warp .print-action-area {
  width: 30%;
  height: 100%;
  float: right;
  text-align: left;
  border-left: 1px solid #ccc;
}

.modal-print-warp .print-action {
  width: 100%;
  height: 100%;
  position: relative;
  display: block;
}

.modal-print-warp .print-action .print-btn {
  display: block;
  padding: 5px 0 3px;
  margin: 0 30px;
}

.modal-print-warp .print-action .position-top {
  position: absolute;
  top: 30px;
  width: 100%;
}

.modal-print-warp .print-action .position-top .print-btn {
  margin-bottom: 15px;
  font-weight: 500;
}

.modal-print-warp .print-action .position-bottom {
  position: absolute;
  bottom: 30px;
  width: 100%;
}

.modal-print-warp .print-action .position-bottom .print-btn {
  margin-top: 15px;
}

.dropdown-list-worksheet a {
  display: block;
  width: 100px;
  float: left;
}

.dropdown-list-worksheet a img {
  width: 100%;
}

.dropdown-list-worksheet a p {
  display: block;
}

.worksheet-print-choice {
  border: 1px solid #4e73df;
  color: #4e73df;
  border-radius: 3px;
  padding: 4px 8px 3px;
  position: relative;
  top: 1px;
}

.print-area-btn {
  position: relative;
}

.print-area-btn .print-btn {
  position: absolute;
  right: 0;
  display: inline-block;
}

.worksheet-warp p,
.worksheet-warp ol,
.worksheet-warp ul,
.worksheet-warp ul li {
  padding: 0;
  margin: 0;
}

.worksheet-warp ul li.left {
  float: left;
}

.worksheet-warp ul li.right {
  float: right;
}

.worksheet-page {
  width: 21cm;
  min-height: 29.7cm;
  padding: 2cm;
  margin: 1cm auto;
  background: #fff;
  font-family: "NanumSquareNeo";
}

.worksheet-warp.popup .worksheet-page {
  width: 100%;
}

.worksheet-subpage {
  background: #fff;
  position: relative;
  font-size: 14px;
}

.ws-head {
  clear: both;
}

.ws-head img,
canvas {
  height: 44px;
}

.ws-head .logo-academy-img {
  display: inline-block;
  padding-right: 10px;
  float: none;
}

.ws-head .logo-academy-text {
  display: inline-block;
  vertical-align: middle;
  font-weight: 800;
  font-size: 1.8rem;
}

.ws-head .class-data {
  text-align: right;
  line-height: 140%;
}

.ws-head .ws-qrcode {
  margin-left: 5px;
}

.ws-cont {
  clear: both;
  padding: 10px 0;
}

.ws-cont .ws-title {
  position: relative;
  border: 3px solid #4e73df;
  margin: 5px 0 0 5px;
  min-height: 43px;
  border-radius: 10px;
}

.ws-cont .ws-title .worksheet-title {
  background: #4e73df;
  color: #fff;
  padding: 0 10px;
  margin: 5px 0 0 -8px;
  display: inline-block;
  border-radius: 6px;
  font-weight: 700;
  font-size: 18px;
}

.ws-cont .ws-title .worksheet-sub-title {
  color: #4e73df;
  font-size: 15px;
  padding: 7px 10px 3px 5px;
  font-weight: 700;
  display: inline-block;
}

.ws-cont .ws-sign {
  padding: 30px 10px 30px 0;
}

.ws-cont .ws-sign th {
  padding-right: 5px;
  padding-left: 10px;
  font-weight: 400;
}

.ws-cont .ws-sign td {
  border-bottom: 1px solid #222;
}

.ws-cont .ws-sheet-script {
  padding-bottom: 5px;
  font-weight: 700;
}

.ws-cont .print-tbl-com {
  width: 100%;
  word-break: keep-all;
}

.ws-cont .print-tbl-com tr th,
.ws-cont .print-tbl-com tr td {
  border: 1px solid #6e707e;
  height: 35px;
}

.ws-cont .print-tbl-com tr td.left {
  text-align: left;
}

.ws-cont .print-tbl-com tr td.right {
  text-align: right;
}

.ws-cont .print-tbl-com tr td.center {
  text-align: center;
}

.ws-cont .print-tbl-com thead tr th {
  text-align: center;
  background-color: #e0e4f0;
}

.ws-cont .print-tbl-com tbody tr th {
  font-weight: 400;
  text-align: center;
}

.ws-cont .print-tbl-com tbody tr td {
  padding: 5px 10px;
}

.ws-cont .print-tbl-com .sheet-point-word {
  font-size: 1.5rem;
  font-family: Nunito;
  font-weight: 800;
}

.ws-cont .print-tbl-com .sheet-point-word .blank-area {
  padding: 0 10px;
  border-bottom: 2px solid #4e73df;
}

.ws-cont .print-tbl-com .sheet-point-word .blank-area em {
  opacity: 0;
}

.ws-cont .print-tbl-com.write-word tr td {
  height: 75px;
}

.ws-cont .print-tbl-com.mean-choose tr td {
  height: 144px;
}

.ws-cont .print-tbl-com.mean-choose tr td p {
  font-weight: 700;
  padding: 0 0 5px 10px;
  font-size: 16px;
}

.ws-cont ol {
  margin: 0 0 0 2.5rem;
}

.ws-cont ol li {
  list-style: decimal;
}

.ws-cont ol[data-list-style-type="ko"] > li:nth-child(1)::marker {
  content: "① ";
}
.ws-cont ol[data-list-style-type="ko"] > li:nth-child(2)::marker {
  content: "② ";
}
.ws-cont ol[data-list-style-type="ko"] > li:nth-child(3)::marker {
  content: "③ ";
}
.ws-cont ol[data-list-style-type="ko"] > li:nth-child(4)::marker {
  content: "④ ";
}
.ws-cont ol[data-list-style-type="ko"] > li:nth-child(5)::marker {
  content: "⑤ ";
}
.ws-cont ol[data-list-style-type="ko"] > li:nth-child(6)::marker {
  content: "⑥ ";
}
.ws-cont ol[data-list-style-type="ko"] > li:nth-child(7)::marker {
  content: "⑦ ";
}
.ws-cont ol[data-list-style-type="ko"] > li:nth-child(8)::marker {
  content: "⑧ ";
}
.ws-cont ol[data-list-style-type="ko"] > li:nth-child(9)::marker {
  content: "⑨ ";
}
.ws-cont ol[data-list-style-type="ko"] > li:nth-child(10)::marker {
  content: "⑩ ";
}

.ws-cont ol li.ok,
.ws-cont tr td.ok {
  color: #4e73df;
}

.ws-cont ol li.ok {
  text-decoration: underline;
  font-weight: 700;
}

.ws-cont .follow-up {
  font-size: 16px;
  display: block;
  text-align: center;
}

.ws-cont .follow-up span {
  display: block;
  font-size: 14px;
  font-weight: 400;
}

.ws-cont .follow-up.title {
  font-weight: 500;
  line-height: 20px;
}

.ws-cont .follow-up.text {
  position: relative;
  font-size: 18px;
  font-family: "Raleway Dots", cursive;
  border-top: 1px solid #dbe2f1;
  border-bottom: 1px solid #dbe2f1;
  padding: 8px 0;
}

.ws-cont .follow-up.text .text-box {
  border-top: 0.5px solid #dbe2f1;
  border-bottom: 0.5px solid #dbe2f1;
  letter-spacing: 2px;
  height: 10px;
  line-height: 6px;
  padding-bottom: 4px;
  color: #d9d9d9;
}

.ws-cont .print-tbl-com.ggoggomu-study tr td {
  height: 90px;
}

.ws-cont .print-tbl-com.ggoggomu-study .arrow-icon-area {
  position: relative;
}

.ws-cont .print-tbl-com.ggoggomu-study .arrow-icon-area .arrow-icon {
  position: absolute;
  left: 44%;
  bottom: -12px;
}

.ws-cont .print-tbl-com.ggoggomu-study tr.guide-text td,
.ws-cont .print-tbl-com.ggoggomu-study tr.guide-text .sheet-point-word {
  color: #e9e9e9;
}

.ws-cont .print-tbl-com.fill-blank tr td {
  height: 72px;
}

.ws-cont .print-tbl-com.fill-blank .sheet-point-word {
  font-size: 1.1rem;
}

.ws-cont .print-tbl-com.word-arrangement tr td {
  padding: 20px 0 25px;
}

.ws-cont .word-view-area {
  padding: 10px 0 5px;
  font-size: 16px;
}

.ws-cont .word-view-area span {
  font-weight: 700;
}

.ws-cont .given-word-title {
  font-size: 16px;
}

.ws-cont .given-word-title .hint-text {
  display: block;
  font-size: 14px;
}

.ws-cont .word-view-option {
  padding: 15px 0 0;
  font-size: 14px;
}

.ws-cont .word-view-option span {
  display: inline-block;
  margin: 0 15px;
}

.ws-cont .print-tbl-com.choice-grammar tr td {
  padding: 30px 0;
}

.ws-cont .print-tbl-com.choice-grammar tr td .sheet-point-word {
  margin: 10px 0 0;
}

.ws-cont .print-tbl-com.grammar-blank-fill tr td {
  padding: 40px 0;
}

.ws-cont .print-tbl-com.grammar-blank-fill tr td .sheet-point-word {
  margin: 20px 0 0;
}

.ws-cont .print-tbl-com.word-interpreting tr td {
  padding: 40px 30px;
  text-align: left;
}

.word-blank-full {
  border-bottom: 2px solid #4e73df;
  width: 100%;
  height: 36px;
  margin-top: 20px;
}

.ws-foot {
  width: 100%;
  clear: both;
  padding: 10px 0 0;
}

.ws-foot ul li {
  font-size: 0.8rem;
  float: left;
}

.ws-foot ul li:nth-child(1) {
  width: 70%;
  text-align: left;
}

.ws-foot ul li:nth-child(2) {
  width: 30%;
  text-align: right;
}

.worksheet-warp.popup .worksheet-page .ws-cont .ws-title .worksheet-sub-title {
  font-size: 20px;
  padding: 6px 10px 6px 5px;
}

.worksheet-warp.popup .worksheet-page .ws-cont .ws-sheet-script {
  font-size: 16px;
  padding: 0 0 5px 5px;
}

.worksheet-warp.popup .worksheet-page .ws-cont .print-tbl-com {
  font-size: 15px;
}

.chevron {
  position: relative;
  text-align: center;
  padding: 6px;
  margin-bottom: 6px;
  height: 6px;
  width: 30px;
}

.chevron::before,
.chevron::after {
  content: "";
  position: absolute;
  top: 0;
  height: 100%;
  background: #4e73df;
}

.chevron::before {
  left: 0;
  width: 51%;
  transform: skew(0deg, 36deg);
}

.chevron::after {
  right: 0;
  width: 50%;
  transform: skew(0deg, -36deg);
}

.print-preview-area .worksheet-page {
  width: 100%;
  min-height: auto;
  padding: 1cm;
  margin: 0 auto;
  font-size: 12px;
}

.print-preview-area .ws-head .ws-logo {
  height: 30px;
}

.print-preview-area .ws-head .ws-qrcode {
  width: 30px;
  height: 30px;
  margin-left: 5px;
}

.print-preview-area .ws-head .ws-qrcode img {
  width: 100%;
}

.print-preview-area .ws-head .class-data {
  text-align: right;
  line-height: 140%;
}

.print-preview-area .ws-head .class-data span {
  display: block;
  font-weight: 700;
  font-size: 1.2rem;
}

.print-preview-area .ws-head .class-data img {
  height: 30px;
}

.print-preview-area .worksheet-page .ws-head .logo-academy-img {
  padding-right: 6px;
  float: left;
}

.print-preview-area .worksheet-page .ws-head .logo-academy-text {
  font-size: 1.2rem;
  height: 30px;
  line-height: 30px;
}

.print-preview-area .worksheet-page .ws-cont .ws-title .worksheet-title {
  padding: 2px 10px;
  font-size: 15px;
}

.print-preview-area .worksheet-page .ws-cont .ws-title .worksheet-sub-title {
  font-size: 14px;
}

.print-preview-area .worksheet-page .ws-cont .print-tbl-com .sheet-point-word {
  font-size: 1.2rem;
}

/* =========================================================
   Word List / Dropdown
========================================================= */
.word-list-warp .word-list-area {
  display: inline-block;
  padding: 0 10px 15px 0;
}

.word-list-warp .word-list-area .word-list {
  position: relative;
  width: 260px;
}

.word-list-warp .word-list-area .word-list .dropdown-menu {
  border: 1px solid #b7b9cc;
  position: absolute;
  top: -2px;
  left: 240px;
  width: 250px;
  box-shadow: 0 0.3rem 0.3rem rgba(0, 0, 0, 0.2) !important;
}

.word-list-warp .word-list-area .word-list .dropdown-menu li {
  position: relative;
  top: 0;
}

.word-list-warp .word-list-area .word-list .dropdown-menu li em {
  font-style: normal;
  font-size: smaller;
  font-weight: 700;
  padding-left: 3px;
  vertical-align: super;
  color: #d62516;
}

.word-list-warp
  .word-list-area
  .word-list
  .dropdown-menu
  li:hover
  .dropdown-item-menu {
  display: block;
}

.word-list-warp .word-list-area .word-list .dropdown-menu .dropdown-item {
  font-size: 15px;
  position: relative;
  padding: 0.5rem 1.5rem;
  font-weight: 400;
}

.dropdown-item:hover,
.dropdown-item:focus,
.dropdown-item.active,
.dropdown-item:active {
  color: #2e2f37;
  text-decoration: none;
  background-color: #eaecf4;
}

.dropdown-item.disabled {
  pointer-events: none;
  color: #999;
}

.word-list-warp .word-list-area .word-list .dropdown-menu .dropdown-item i {
  margin: 0 10px 0 0;
}

.word-list-warp
  .word-list-area
  .word-list
  .dropdown-menu
  .dropdown-item
  .right-btn {
  position: absolute;
  top: 8px;
  right: 10px;
  display: block;
}

.word-list-warp .word-list-area .word-list .vocabulary {
  height: 60px;
  padding: 0 20px;
  display: block;
  border-radius: 10px;
  background: #f2f6fb;
  cursor: pointer;
  word-break: keep-all;
  overflow: hidden;
  text-overflow: ellipsis;
  display: -webkit-box;
  -webkit-line-clamp: 2;
  -webkit-box-orient: vertical;
  justify-content: center;
  align-items: center;
}

.word-list-warp .word-list-area .word-list .vocabulary .line {
  font-size: 14px;
  line-height: 22px;
  font-weight: 400;
  text-align: left;
  position: relative;
  top: 50%;
  transform: translateY(-50%);
  color: #202530;
  display: block;
  padding: 5px 0 0;
}

.word-list-warp .word-list-area .word-list .vocabulary:hover {
  background: #e2e5e9;
}

.word-list-warp .word-list-area.on .word-list .vocabulary {
  background: #c9e5fc;
}

.word-list-warp .word-list-area.not-mine .word-list .vocabulary {
  background: #fdf2f5;
}

.word-list-warp .word-list-area.not-mine .word-list .vocabulary:hover {
  background: #efe0e2;
}

.word-list-warp.series-list .word-list-area .word-list .vocabulary .line {
  padding: 5px 0 0 45px;
  background: url(../images/file_lists_bg.png) 0 50% no-repeat;
  background-size: 30px;
  min-height: 30px;
}

.dropdown-menu-area .dropdown-item-menu {
  position: absolute;
  top: -9px;
  left: 200px;
  border: 1px solid #b7b9cc;
  width: 200px;
  z-index: 1;
  background: #fff;
  border-radius: 10px;
  padding: 5px 0;
  box-shadow: 0 0.3rem 0.1rem rgba(0, 0, 0, 0.2) !important;
  animation-name: dropdown-item-menu;
  animation-duration: 0.5s;
  animation-duration: leaner;
  animation-iteration-count: 1;
  animation-direction: alternate;
  animation-fill-mode: forwards;
  display: none;
  list-style: none;
}

@-webkit-keyframes dropdown-item-menu {
  0% {
    top: -20px;
  }
  100% {
    top: -9px;
  }
}

.dropdown-menu-area .dropdown-item-menu li a {
  text-decoration: none;
  color: #000;
  display: block;
  padding: 10px 15px;
}

.dropdown-item-menu li a:hover,
.dropdown-item-menu li a:focus,
.dropdown-item-menu li a.active,
.dropdown-item-menu li a:active {
  color: #2e2f37;
  text-decoration: none;
  background-color: #eaecf4;
}

.dropdown-menu-area input[type="checkbox"] {
  display: none;
}

.dropdown-menu-area input[type="checkbox"] + label > span {
  font-weight: bold;
}

.dropdown-menu-area input[type="checkbox"]:checked + label {
  background: #eaecf4;
}

.card-header .academy-made {
  min-width: 180px;
  margin: 9px 0 0 15px;
}

.card-header .academy-made label {
  margin: 0;
}

/* =========================================================
   Print Wrapper
========================================================= */
#wrapper #content-wrapper.print-wapper {
  background-color: #fff;
  padding: 3rem 0;
}

.print-wapper .print-container {
  width: 100%;
  max-width: 800px;
  margin: 0 auto;
}

.print-wapper .print-container .gnb-title {
  border-bottom: 1px solid #6c8692;
  margin-bottom: 3rem;
}

.print-wapper .print-container .gnb-title h1 {
  line-height: 50px;
  color: #366073;
  font-family: var(--font);
}

.print-wapper .print-container .gnb-title h1 span {
  font-size: 24px;
  font-weight: 500;
}

.print-wapper .print-container .gnb-title .title-simbol {
  display: block;
  width: 71px;
  height: 50px;
  background: url(/images/logo_simbol.png) no-repeat;
  background-size: cover;
}

.print-wapper .print-container .print-table table {
  border: 1px solid #e3e6f0;
}

.print-wapper .print-container .print-table table th {
  border: 1px solid #bbbfcd;
  vertical-align: middle;
  line-height: 120%;
  background: #cecfd3;
}

.print-wapper .print-container .print-table table td {
  border: 1px solid #e3e6f0;
}

.print-wapper .ludi-level-chart-area {
  top: 38%;
  left: 60%;
  transform: translate(-62%, -60%);
}

.print-wapper .ludi-level-chart {
  width: 100px;
  height: 100px;
}

.print-wapper .ludi-level-chart::after {
  width: 70px;
  height: 70px;
}

.print-wapper .ludi-level-box .ludi-level {
  line-height: 100%;
}

/* =========================================================
   Misc
========================================================= */
.cont-srch-area {
  margin: 0.3rem 0 1.2rem;
}

.cont-srch-area .card-header {
  border-bottom: none;
  border-radius: calc(0.35rem - 1px);
}

.cont-srch-area .card-header .form-control {
  min-height: 38px;
}

.card-body.height-full {
  min-height: 550px;
}

.overflow-list {
  height: 520px;
  overflow: hidden;
  overflow-y: scroll;
}

.modal-form-check-area {
  padding: 0.375rem 0;
}

.text-right-check {
  min-width: 45px;
  position: relative;
}

.text-right-check label {
  margin: 0;
}

.text-right-check input {
  position: absolute;
  right: 0;
}

.result-chart-warp {
  height: 400px;
  margin-top: 20px;
}

.result-grade-total {
  background: #858796;
  border-radius: calc(0.35rem - 1px);
  border: 1px solid #e3e6f0;
  display: block;
  clear: both;
  overflow: hidden;
  padding: 10px 20px;
}

.result-grade-total .total-text {
  float: left;
  padding-top: 3px;
  font-weight: 700;
  color: #fff;
  font-size: 16px;
}

.result-grade-total .total-text span {
  color: #faff00;
  font-size: 18px;
}

.result-grade-total .r-cont {
  float: right;
}

.result-grade-total .r-cont .btn {
  margin-left: 10px;
}

.result-grade-total .r-cont .btn-sm {
  padding: 0.25rem 1rem;
}

.exams-warp {
  padding: 10px;
}

.exams-warp .exams-area h5 {
  font-size: 14px;
  font-weight: 700;
}

.tag {
  color: #202530;
  background: #fff;
  cursor: pointer;
  border: 1px solid #202530;
  display: inline-block;
  padding: 0 20px;
  margin: 3px;
  border-radius: 5px;
  height: 30px;
  line-height: 28px;
}

.tag.on {
  color: #fff;
  background: #202530;
}

.btn-warp {
  text-align: center;
  padding-top: 20px;
}

.btn-warp .btn {
  width: 200px;
  margin: 0 5px;
}

.btn-warp .btn span {
  padding: 0.3rem 0.75rem;
  font-size: 18px;
  display: block;
}

.btn-warp .btn-warp-ex {
  font-size: 14px;
}

.input-group.student-search {
  position: relative;
}

.input-group.student-search input {
  display: inline-block;
  width: 100%;
  margin-right: 50px;
  height: calc(1.5em + 0.75rem + 2px);
  padding: 0.375rem 0.75rem;
  font-size: 1rem;
  font-weight: 400;
  line-height: 1.5;
  color: #6e707e;
  background-color: #fff;
  background-clip: padding-box;
  border: 1px solid #d1d3e2;
  border-radius: 0.35rem;
  border-top-right-radius: 0;
  border-bottom-right-radius: 0;
}

.input-group.student-search input:focus {
  outline: none;
}

.input-group.student-search button {
  position: absolute;
  right: 0;
  display: inline-block;
  font-weight: 400;
  color: #858796;
  text-align: center;
  vertical-align: middle;
  user-select: none;
  background-color: #fff;
  border: 1px solid #858796;
  padding: 0.375rem 0.75rem;
  font-size: 1rem;
  line-height: 1.5;
  border-radius: 0.35rem;
  margin-left: -1px;
  border-top-left-radius: 0;
  border-bottom-left-radius: 0;
  transition: color 0.15s ease-in-out, background-color 0.15s ease-in-out,
    border-color 0.15s ease-in-out, box-shadow 0.15s ease-in-out;
}

.input-group.student-search button:hover {
  background-color: #858796;
  color: #fff;
}

.footer-link {
  margin-bottom: 5px;
}

.footer-link a {
  padding: 0 5px;
}

.logo-name-inlinebox {
  display: flex;
  align-items: center;
  justify-content: left;
  padding: 0 20px;
}

.logo-name-inlinebox div:first-child {
  margin-right: 20px;
}

.logo-name-inlinebox span {
  font-size: 18px;
}

.tbl-learn-plan span::after {
  content: "|";
  padding: 0 5px;
  color: #99a0b6;
}

.tbl-learn-plan span:last-child::after {
  content: "";
}

/* =========================================================
   Account Settings Card
========================================================= */
.account-settings-card {
  max-width: 720px;
  margin: 24px auto 0;
  background: #fff;
  border: 1px solid var(--border);
  border-radius: 20px;
  box-shadow: 0 16px 36px rgba(36, 54, 103, 0.08);
  overflow: hidden;
  
}

.account-settings-card__body{
  padding: 20px 0;
}

.account-settings-card__group{
  padding: 10px 32px;
}
.account-settings-card__row-title{
  display: block;
  margin-bottom: 12px;
  font-size: 14px;
  font-weight: 700;
  color: var(--secondary);
  width: 100%;
  text-align: left;
  border-bottom: 1px solid var(--border);
  padding-bottom: 12px;
}

.account-settings-card__row {
  display: grid;
  grid-template-columns: 120px 1fr;
  align-items: center;
  gap: 16px;
  padding: 12px 0;
  border-bottom: 1px dashed var(--border);
}

.account-settings-card__row label {
  color: var(--text-main);
  font-size: 16px;
  font-weight: 600;
}

.account-settings-card__row:last-child {
  border-bottom: 0;
}

.account-settings-card__value-wrap {
  width: 100%;
}

.account-settings-card__value {
  min-height: 48px;
  display: flex;
  align-items: center;
  padding: 0 2px;
  color: var(--text-main);
  font-size: 16px;
  word-break: break-all;
}

.account-settings-card__input.form-control {
  display: none;
  width: 100%;
  height: 50px;
  padding: 0 14px;
  border: 1px solid #d7dee8;
  border-radius: 6px;
  font-size: 16px;
  transition: all 0.2s ease;
}

.account-settings-card__input.form-control:focus {
  border-color: var(--primary);
  box-shadow: 0 0 0 3px rgba(21, 170, 188, 0.15);
}

.account-settings-card__input.form-control:disabled {
  background: #f3f5f8;
  color: #9ca3af;
}

.account-settings-card__footer {
  display: flex;
  justify-content: center;
  gap: 12px;
  padding: 30px 32px 28px;
}

.account-settings-card__cancel {
  display: none;
  min-width: 120px;
}

.btn-point {
  min-width: 120px;
  background-color: var(--primary);
  border-color: var(--primary);
  box-shadow: 0 8px 18px rgba(36, 167, 243, 0.25);
  transition: all 0.2s ease;
}

.btn-point:hover {
  background-color: #e88314;
  border-color: #e88314;
  transform: translateY(-1px);
}

.btn-point:focus {
  box-shadow: 0 0 0 0.25rem rgba(243, 146, 36, 0.3);
}

.btn-navy {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 6px;

  height: 50px;
  padding: 0 18px;
  min-width: 200px;

  border-radius: 6px;
  border: 1px solid #243667;

  background: #243667;
  color: #fff;

  font-size: 18px;
  font-weight: 600;

  cursor: pointer;
  transition: all 0.2s ease;
}
.btn-navy:hover {
  background: #1d2c55; /* 살짝 더 진하게 */
  border-color: #1d2c55;
}

.btn-navy:active {
  background: #172245; /* 눌림 느낌 */
  border-color: #172245;
}

.btn-outline-navy {
  display: inline-flex;
  align-items: center;
  justify-content: center;

  min-width: 120px;
  height: 50px;
  padding: 0 18px;

  border-radius: 6px;
  border: 1px solid #243667;

  background: transparent;
  color: #243667;

  font-size: 18px;
  font-weight: 600;

  cursor: pointer;
  transition: all 0.2s ease;
}

.btn-outline-navy:hover {
  background: rgba(36, 54, 103, 0.08);
}
.btn-navy:disabled,
.btn-outline-navy:disabled {
  opacity: 0.4;
  cursor: not-allowed;
}

/* =========================================================
   Mail Settings
========================================================= */
.layout-grid-2{
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 30px;
}

.policy-daily-area,
.policy-weekly-area {
  padding: 24px 0 0 0;
}

.policy-time-row {
  display: flex;
  align-items: center;
  flex-wrap: nowrap;
  gap: 8px;
  width: 100%;
}

.policy-time-row .form-select {
  flex: 1 1 0;
  min-width: 0;
}

.policy-time-row .form-check-text {
  flex: 0 0 auto;
  white-space: nowrap;
  font-size: 14px;
  color: #6c757d;
}

.policy-week-days {
  display: flex;
  align-items: center;
  justify-content: flex-start;
  gap: 10px;
  margin: 0 0 12px 0;
}

.policy-week-days .policy-day-item {
  position: relative;
  cursor: pointer;
  width: 100%;
  max-width: 47px;
  margin-bottom: 0;
}

.policy-week-days .policy-day-item span {
  width: 100%;
  min-width: 0;
}

.policy-day-item input {
  position: absolute;
  opacity: 0;
  pointer-events: none;
}

.policy-day-item span {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 100%;
  aspect-ratio: 1 / 1;
  padding: 0 14px;
  border: 1px solid #dee2e6;
  border-radius: 50px;
  background: #fff;
  color: #495057;
  font-size: 14px;
  font-weight: 600;
  transition: all 0.2s ease;
}

.policy-day-item input:checked + span {
  border-color: var(--primary);
  background: var(--primary);
  color: #fff;
}

#mail-new-recipient {
  height: 48px;
  border-radius: 12px;
}

.card {
  border-radius: 20px;
  overflow: hidden;
}

.card-header {
  background: linear-gradient(
    180deg,
    #ffffff 0%,
    #f9fafb 100%
  );
  border-bottom: 1px solid #f1f3f5;
  box-shadow:
    inset 0 1px 0 rgba(255, 255, 255, 0.9),
    inset 0 -1px 0 rgba(0, 0, 0, 0.02);
}

.card-header-select {
  width: 20%;
  margin-right: 10px;
}

.keyword-settings-wrap{
  width: 100%;
  margin: 0 auto;
}

.keyword-settings-wrap .table td:nth-child(3),
.keyword-settings-wrap .table th:nth-child(3) {
  min-width: 260px;
}

.keyword-settings-wrap .text-muted {
  color: #6b7280 !important;
}



/* =========================
   Sidebar
========================= */
.rm-sidebar {
  min-width: 220px;
  background: linear-gradient(
    180deg,
    #1F2022 0%,
    #16203B 50%,
    #000206 100%
  );
}

.rm-sidebar-top {
  padding: 30px 20px 20px 20px;
  text-decoration: none;
}

.rm-sidebar__logo {
  display: flex;
  align-items: center;
  justify-content: center;

  width: 100%;
  padding: 6px 0;
  border-radius: 16px;
  background: linear-gradient(145deg, #ffffff, #f1f3f5);

  box-shadow:
    inset 0 2px 6px rgba(0, 0, 0, 0.4),
    inset 0 -2px 6px rgba(255, 255, 255, 0.8),
    0 8px 20px rgba(0, 0, 0, 0.25);

  transition: all 0.25s ease;
}

.rm-sidebar:hover .rm-sidebar__logo {
  transform: scale(1.05);
  box-shadow:
    inset 0 3px 8px rgba(0, 0, 0, 0.1),
    inset 0 -2px 6px rgba(255, 255, 255, 0.7),
    0 6px 12px rgba(0, 0, 0, 0.6);
}

.rm-sidebar__logo img {
  display: block;
  width: 100%;
  max-width: 130px;
  height: auto;
}

.rm-sidebar__title {
  margin: 18px 16px 0px 10px;
  color: rgba(255, 255, 255, 0.5);
  font-size: 11px;
  font-weight: 700;
  letter-spacing: 0.08em;
  text-transform: uppercase;
}

.rm-sidebar__divider {
  display: none;
  width: 100%;
  height: 1px;
  margin: 16px 0;
  border: 0;
  background: rgba(255, 255, 255, 0.1);
}

.rm-sidebar__item {
  list-style: none;
  margin: 0;
  padding: 0 12px;
}
.rm-sidebar__item.menu-dashboard{
  padding-top: 15px;
  padding-bottom: 15px;
  border: 1px solid rgba(255, 255, 255, 0.1);
  border-left: none;
  border-right: none;
}
.rm-sidebar__item + .rm-sidebar__item {
  margin-top: 4px;
}

.rm-sidebar__link {
  display: flex;
  align-items: center;
  gap: 10px;
  padding: 7px 10px;
  border-radius: 12px;
  color: rgba(255, 255, 255, 0.88);
  font-size: 14px;
  font-weight: 500;
  line-height: 1.4;
  text-decoration: none;
  transition: background-color 0.2s ease, color 0.2s ease, box-shadow 0.2s ease;
}

.rm-sidebar__link:hover {
  color: #fff;
}

.rm-sidebar__link.is-active {
  color: #00f7ff;
  font-weight: 600;
}

.rm-sidebar__link .feature-status-badge {
  margin-left: auto;
  padding: 2px 7px;
  background: rgba(255, 109, 109, 0.16);
  color: #ff8c8c;
  font-size: 10px;
}

.rm-sidebar__link i,
.rm-sidebar__icon {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 18px;
  min-width: 18px;
  height: 18px;
  flex-shrink: 0;
}

.rm-sidebar__icon svg {
  width: 18px;
  height: 18px;
  fill: currentColor;
  display: block;
}




/* =========================
   대시보드
========================= */

.dashboard {
  width: 100%;
}

.dashboard .dashboard-title {
  font-size: 28px;
  font-weight: 800;
  margin: 0 0 24px;
}

.dashboard .dashboard-grid {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 24px;
}

.dashboard .card {
  background: #fff;
  border: 1px solid #e7edf5;
  border-radius: 20px;
  padding: 24px;
  box-shadow: 0 12px 30px rgba(0, 0, 0, 0.04);
}

.dashboard .card-head {
  display: flex;
  justify-content: space-between;
  align-items: center;
  margin-bottom: 18px;
}

.dashboard .card-title {
  font-size: 18px;
  font-weight: 800;
  margin-bottom: 0;
  color: #1f2937;
}

.dashboard .card-title-with-tooltip {
  display: inline-flex;
  align-items: center;
  gap: 8px;
}

.dashboard .dashboard-info-tooltip {
  position: relative;
  display: inline-flex;
  align-items: center;
}

.dashboard .dashboard-info-button {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 18px;
  height: 18px;
  border: 0;
  border-radius: 50%;
  padding: 0;
  background: transparent;
  color: #15aabc;
  font-size: 14px;
  line-height: 1;
  cursor: pointer;
}

.dashboard .dashboard-info-button:focus {
  outline: none;
}

.dashboard .dashboard-tooltip-content {
  position: absolute;
  left: 50%;
  top: calc(100% + 8px);
  transform: translateX(-50%);
  visibility: hidden;
  opacity: 0;
  min-width: 280px;
  max-width: 340px;
  padding: 10px 14px;
  border-radius: 8px;
  background: #1f2937;
  color: #fff;
  text-align: left;
  line-height: 1.5;
  font-size: 12px;
  font-weight: 400;
  box-shadow: 0 10px 24px rgba(15, 23, 42, 0.18);
  z-index: 20;
  transition: opacity 0.15s ease, visibility 0.15s ease;
}

.dashboard .dashboard-info-tooltip:hover .dashboard-tooltip-content,
.dashboard .dashboard-info-tooltip:focus-within .dashboard-tooltip-content {
  visibility: visible;
  opacity: 1;
}

.dashboard .card-link {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  padding: 6px 12px;
  border-radius: 999px;
  background: #eff6ff;
  color: var(--primary);
  text-decoration: none;
  font-size: 12px;
  font-weight: 500;
  line-height: 1;
}

.dashboard .summary-grid {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 14px;
  height: 100%;
}
.dashboard .plan-status-grid{
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  justify-items: center;
  gap: 14px;
}
.dashboard .summary-box {
  border: 1px solid #e7edf5;
  border-radius: 16px;
  padding: 20px;
  background: #fafcff;
  display: flex;
  justify-content: center;
  align-items: center;
  flex-direction: column;
  gap: 20px;
  width: 100%;
}

.dashboard .summary-label {
  font-size: 18px;
  font-weight: 500;
  color: #6b7280;
}

.dashboard .summary-value-wrap {
  display: flex;
  align-items: baseline;
  gap: 4px;
  margin-top: 10px;
}

.dashboard .summary-value {
  font-size: 52px;
  font-weight: 800;
  line-height: 1;
  color: #1f2937;
}

.dashboard .summary-unit {
  font-size: 36px;
  position: relative;
  font-weight: 600;
  top: -3px;
}

.dashboard .flex-box {
  display: grid;
  grid-template-columns: 0.8fr 1.2fr;
  gap: 14px;
}

.dashboard .company-count {
  border: 1px solid #e7edf5;
  border-radius: 16px;
  padding: 20px;
  background: #fff7f7;
}

.dashboard .company-count .summary-value-wrap {
  margin-top: 10px;
}

.dashboard .company-count .summary-value {
  color: #ef4444;
}
.dashboard .company-list-box {
  padding: 5px 20px;
  border: 1px solid #e7edf5;
  border-radius: 16px;
  background: #fff;
  display: flex;
  justify-content: space-between;
  flex-direction: column;
}
.dashboard .company-list{
  margin: 0;
  padding: 0;
}

.dashboard .company-list li {
  list-style: none;
  padding: 5px 5px;
  font-weight: 600;
  color: #374151;
  font-size: 14px;
  border-bottom: 1px dashed #e5e7eb;
}

.dashboard .company-list li:last-child {
  border-bottom: 0;
}

.dashboard .company-list-box .more {
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 5px 0;
  margin-top: 3px;
  border-radius: 5px;
  background: #eeeeee;
  color: rgba(0, 0, 0, 0.4);
  font-weight: 500;
  font-size: 12px;
  cursor: pointer;
  transition: all 0.2s ease;
}

.dashboard .company-list-box .more:hover {
  color: rgba(0, 0, 0, 0.7);
}

.dashboard .company-list-box .more::before {
  content: "+";
  margin-right: 4px;
  font-weight: 600;
}

.dashboard .history-table {
  width: 100%;
  border-collapse: separate;
  border-spacing: 0 8px;
}

.dashboard .history-table tr {
  background: #f8fafc;
}
.dashboard .history-table tr:hover {
  background: #f4f9ff;
  transform: scale(1.02);
}

.dashboard .history-table td {
  padding: 14px;
  font-size: 14px;
  color: #374151;
  vertical-align: middle;
}

.dashboard .history-table td:first-child {
  border-radius: 10px 0 0 10px;
}

.dashboard .history-table td:last-child {
  border-radius: 0 10px 10px 0;
}

.dashboard .history-table strong {
  color: #1f2937;
  font-weight: 800;
}

.dashboard .hit-keyword-grid {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 20px;
}
.dashboard .hit-keyword-grid > div {
  display: flex;
  flex-direction: column;
  gap: 10px;
}

.dashboard .hit-keyword-grid .keyword-item {
  display: flex;
  align-items: baseline;
  gap: 10px;
  padding: 14px;
  background: #f8fafc;
  margin: 0 0 0 0;
  height: 49px;

}

.dashboard .hit-keyword-grid .keyword-item:hover{
  transform: scale(1.02);
  background: #f4f9ff;
}

.dashboard .hit-keyword-grid .keyword-rank {
  width: 24px;
  font-weight: 800;
  color: #9ca3af;
  flex-shrink: 0;
}

.dashboard .hit-keyword-grid .keyword-name {
  font-weight: 700;
  color: #374151;
}

.dashboard .hit-keyword-grid .keyword-count {
  color: #9ca3af;
  font-size: 13px;
  margin-left: 3px;
  position: relative;
  top: -1px;
}



/* =========================================================
   pagination
========================================================= */

.pagination-area{
  display: flex;
  justify-content: center;
  margin-top: 28px;
}

.pagination {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 8px;
  margin: 0;
  padding: 0;
  list-style: none;
}

.page-item {
  display: flex;
}

.page-link {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-width: 42px;
  height: 42px;
  padding: 0 14px;
  border: 1px solid #dbe3ee;
  border-radius: 12px;
  background: #fff;
  color: #4b5563;
  font-size: 14px;
  font-weight: 700;
  line-height: 1;
  text-decoration: none;
  box-shadow: 0 4px 14px rgba(15, 23, 42, 0.04);
  transition: background 0.2s ease, border-color 0.2s ease, color 0.2s ease, box-shadow 0.2s ease, transform 0.2s ease;
}

.page-link:hover {
  background: #f8fbff;
  border-color: #bfdbfe;
  color: #2563eb;
  box-shadow: 0 8px 18px rgba(37, 99, 235, 0.12);
  transform: translateY(-1px);
}

.page-item.active .page-link {
  border-color:  var(--dark);
  background: var(--dark);
  color: #fff;
  box-shadow: 0 5px 10px rgba(0, 0, 0, 0.22);
}

.page-link.arrow {
  min-width: 42px;
  padding: 0;
  font-size: 13px;
}

.page-link span {
  display: inline-flex;
  align-items: center;
  justify-content: center;
}

.page-link i {
  font-size: 12px;
}

.page-item.disabled .page-link,
.page-link[aria-disabled="true"] {
  border-color: #e5e7eb;
  background: #f9fafb;
  color: #c0c7d1;
  box-shadow: none;
  pointer-events: none;
}

.page-item .page-link,
.page-item:first-child .page-link,
.page-item:last-child .page-link{
  border-radius: 999px;
}




.null-box{
  min-height: 100px;
  display: flex;
  justify-content: center;
  align-items: center;
  font-weight: 500;
  color:rgba(0, 0, 0, 0.3);
}


/* =========================================================
   키워드 설정 현황
========================================================= */
.keyword-status {
  display: flex;
  flex-wrap: wrap;
  justify-content: flex-start;
  gap: 15px 10px;
}

.keyword-status-item {
  display: inline-flex;
  align-items: center;
  gap: 20px;
  width: auto;
  max-width: 100%;
  padding: 10px 18px 10px 20px;
  border: 1px solid rgba(0, 0, 0, 0.15);
  border-radius: 999px;
  background: #fff;
  cursor: pointer;
  transition: background 0.2s ease, border-color 0.2s ease;
}

.keyword-status-item .keyword-name {
  font-size: 16px;
  font-weight: 700;
  color: #1b2025;
  white-space: nowrap;
}

.keyword-status-item .keyword-count {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  border-radius: 999px;
  color: var(--secondary);
  font-size: 15px;
  font-weight: 700;
  line-height: 1;
  white-space: nowrap;
}
.keyword-status-item .keyword-count::before{
  content: 'Follow 중 회원사';
  font-size: 12px;
  color: #636d7a;
  font-weight: 500;
  margin-right: 5px;
}
.keyword-status-item .keyword-count::after{
  content: '개';
  font-size: 14px;
  font-weight: 600;
  position: relative;
  top: -1px;
}


.keyword-status-item:hover {
  background: #effffd;
  transform: scale(1.02);
}
.keyword-status-item:hover .keyword-name{
  color: var(--primary);
}

/* =========================================================
   Toast
========================================================= */
.toast-stack {
  position: fixed;
  top: 24px;
  right: 24px;
  z-index: 1080;
  display: flex;
  flex-direction: column;
  align-items: flex-end;
  gap: 10px;
  pointer-events: none;
}

.status-toast {
  position: relative;
  width: min(240px, calc(100vw - 32px));
  max-width: 240px;
  overflow: hidden;
  pointer-events: auto;
  border: 1px solid rgba(27, 32, 37, 0.08);
  border-radius: 12px;
  background: rgba(255, 255, 255, 0.96);
  box-shadow: 0 12px 24px rgba(15, 23, 42, 0.1);
  backdrop-filter: blur(10px);
  opacity: 0;
  transform: translate3d(0, -6px, 0);
  transition: opacity 0.22s ease, transform 0.22s ease;
}

.status-toast.status-toast--show {
  opacity: 1;
  transform: translate3d(0, 0, 0);
}

.status-toast.status-toast--hide {
  opacity: 0;
  transform: translate3d(0, -4px, 0);
}

.status-toast__inner {
  display: flex;
  align-items: center;
  gap: 8px;
  padding: 9px 10px 10px;
}

.status-toast__icon {
  display: flex;
  align-items: center;
  justify-content: center;
  flex: 0 0 22px;
  width: 22px;
  height: 22px;
  border-radius: 7px;
  color: #fff;
  background: linear-gradient(135deg, #1f8f63, #35b27d);
  box-shadow: 0 6px 12px rgba(53, 178, 125, 0.18);
  font-size: 0.58rem;
}

.status-toast__content {
  min-width: 0;
  flex: 1;
}

.status-toast__title {
  margin-bottom: 0;
  color: #5d6977;
  font-size: 0.58rem;
  font-weight: 700;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  line-height: 1.2;
}

.status-toast__message {
  color: #1b2025;
  font-size: 0.79rem;
  font-weight: 600;
  line-height: 1.25;
}

.status-toast__close {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  flex: 0 0 18px;
  width: 18px;
  height: 18px;
  margin-left: 0;
  padding: 0;
  border: 0;
  border-radius: 999px;
  background: transparent;
  color: #98a2ad;
  font-size: 13px;
  line-height: 1;
  cursor: pointer;
  transition: background-color 0.18s ease, color 0.18s ease;
}

.status-toast__close:hover {
  background: rgba(27, 32, 37, 0.06);
  color: #1b2025;
}

.status-toast__progress {
  position: absolute;
  left: 10px;
  right: 10px;
  bottom: 4px;
  height: 2px;
  border-radius: 999px;
  background: rgba(17, 24, 39, 0.08);
  overflow: hidden;
}

.status-toast__progress::after {
  content: "";
  display: block;
  width: 100%;
  height: 100%;
  border-radius: inherit;
  background: linear-gradient(90deg, #1f8f63, #6bc8a2);
  transform-origin: left center;
  animation: toast-progress 0.9s linear forwards;
}

@keyframes toast-progress {
  from {
    transform: scaleX(1);
  }
  to {
    transform: scaleX(0);
  }
}


#subscriptionTrendChart {
  width: 100%;
  min-height: 520px;
}


.title-team-select-box{
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 10px;
  flex-wrap: wrap;
}
.title-team-select-box .form-select{
  width: auto;
  min-width: 200px;
  font-weight: 700;
  font-size: 16px;
  border-radius: 6px 0 0 6px;
  border-color: var(--primary);
}


.title-team-select-box .title-team-add-btn{
    min-width: 96px;
    height: 38px;
    padding: 0 14px;
    white-space: nowrap;
    border-radius: 0 6px 6px 0;
    font-weight: 600;
  }
  .title-team-select-box .title-team-add-btn::before{
    content: '+';
    font-size: 24px;
    line-height: 1;
    position: relative;
    top: 1px;
  }

.title-team-group{
  display: flex;
  align-items: center;
  justify-content: flex-start;

}