
:root {
    
	--cm-base-color: #fefefe;
	--cm-text-color: #333333;
	--cm-point-color: #6863AF;
		--cm-base-color-bb: #7c7c7c;	
	--cm-base-color-b: #e0e0e0;
	--cm-base-color-d:  #e0e0e0;
	--cm-base-color-dd:  #7c7c7c;
	--cm-point-color-bb: #c2bdff;	
	--cm-point-color-b: #908bd7;
	--cm-point-color-d:  #4a4591;
	--cm-point-color-dd:  #00002d;
	--cm-point-color-v:  #9c94ff;
	--cm-point-color-t:  rgba(104, 99, 175, 0.22);
  --cm-point-color-r: #9463af;
  --cm-point-color-r-t: rgba(148, 99, 175, 0.22);
  --cm-base-color-t:  rgba(254, 254, 254, 0.22);
	--cm-text-color-t:  rgba(51, 51, 51, 0.22);
	--cm-base-color-auto: #000000;
	--cm-text-color-auto: #ffffff;
	--cm-point-color-auto: #ffffff;
	--cm-base-color-auto-t: #00000026;
	--cm-text-color-auto-t: #ffffff26;
	--cm-point-color-auto-t: #ffffff26;
  --cm-point-color-auto-tt: #ffffff60;

    --cm-default-font: var(--cm-e-font), var(--cm-j-font), 'Freesentation5';
  --cm-title-font: var(--cm-e-font), var(--cm-j-font), 'Freesentation5';

  --cm-j-font: 'Kosugi Maru';
  --cm-e-font:   'Raleway';
  --cm-ani: 0.6s;
  --cm-radius: 10px;
  --cm-padding: 10px;
  --cm-form-basecolor: #fbfbfb;
  --cm-form-basecolor-t: #fbfbfb75;
  --cm-form-textcolor: #1d1d1d;
}

  header#header {
  left: 0;
  width:140px;  z-index: 99;
  pointer-events: none;
  }
  header ~ section#body {
  margin-left: 140px;  padding-left: 40px;
  }

.custommenu-wrapper {
  flex-direction: column;    align-items: flex-start;
      justify-content: center}

.custommenu {
  flex-direction: column;
  width: 140px;
  height: auto;
  left: 40px;
  font-size: 12px;
  border: 1px solid var(--cm-text-color-t);
  border-radius: 10px;
  justify-content: center;
  }

.custommenu-item {
  padding: 10px;
  margin: 2px 0 2px 0;
  width: 100%;
}

.custommenu-folder::before {
  margin-right: 10px;
}

.custommenu-main.disabled:not(.custommenu-folder) {
  display:none;
}
.custommenu-sub.disabled {
  display:none;
}


.custommenu-icon {
    width: 14px;
  height: 14px;
  }

.custommenu-icon i,
.custommenu-icon .material-icons {
  font-size: 14px;
}

.custommenu-divider {
  height: 0px;
  width: 100%;
  border-bottom: 1px solid var(--cm-text-color-t);
}

.custommenu-get-background{
  background-image: url('http://jail.dothome.co.kr/data/site/design_background.jpg');
}

/* 1. 기본 레이아웃 및 정렬 (기반 CSS의 .custommenu 확장) */
.cm-message.custommenu-wrapper .custommenu {
    border:0 !important;
    border-radius:0;
    padding:10px;
    gap: 5px; /* 아이템 간 간격 */
    flex-direction: column; /* 위젯은 세로로 나열 */
    transition: all var(--cm-ani);

    /* PHP Stitch 로직: 위치에 따른 가로 정렬 */
        align-items: flex-start;
    }

/* 2. 개별 아이템 - 메시지/위젯 스타일 적용 */
.cm-message .custommenu-item {
    pointer-events: auto;
    background: var(--cm-base-color);
    border: 1px solid var(--cm-text-color);
    border-radius: 10px;
    
    /* [핵심] 개별 입체감 부여 */
    /* 부드러운 외곽 그림자 */
    box-shadow: 0px 4px 10px rgba(0, 0, 0, 0.1); 
    /* 형태를 강조하는 강한 그림자 (말풍선 모양 그대로 그림자가 생김) */
    filter: drop-shadow(3px 3px 0px rgba(0, 0, 0, 0.05)); 
    
    transition: transform 0.2s ease, box-shadow 0.2s ease;
    display: flex;
    align-items: center;
    position: relative;
    
        width: 140px;
    
    /* PHP Stitch 로직: 하단 고정 시 배치 순서 반전 */
    }

/* 3. 메인 메뉴 말풍선 전용 (왼쪽 아래만 각진 형태) */
    .cm-message .custommenu-main {
    border-radius: 10px 10px 10px 0 !important;
}

/* 4. 서브메뉴 스타일 (JS 연동 및 PHP Order 적용) */
    .cm-message .custommenu-item.custommenu-sub {
    margin-left: 20px; /* 서브메뉴 들여쓰기 */
    background: var(--cm-point-color);
    color: var(--cm-point-color-auto);
    border-radius: 10px 10px 0 10px;
    /* 서브메뉴에도 개별 그림자 적용 */
    box-shadow: 0px 3px 8px rgba(0, 0, 0, 0.12);

.custommenu-item.custommenu-sub.open {
    display: flex !important;
}
    /* 서브메뉴는 반대쪽 모서리를 깎아 구분감 제공 */
    border-radius: 10px 10px 0 10px;
    
    
}

/* 서브메뉴 내 텍스트 색상 보정 */
.cm-message .custommenu-item.custommenu-sub .custommenu-name {
    color: var(--cm-point-color-auto);
}

/* 5. 폴더 표시 아이콘 (+/-) */
    .cm-message .custommenu-folder::after {
    content: '+';
    position: absolute;
    top: -8px;
    right: -8px;
    background: var(--cm-point-color);
    width: 16px;
    height: 16px;
    color: var(--cm-point-color-auto);
    font-size: 12px;
    display: flex;
    align-items: center;
    justify-content: center;
    border-radius: 100%;
    font-family: 'Freesentation5';
    box-shadow: 0 2px 4px rgba(0,0,0,0.2);
}

.cm-message .custommenu-folder.open::after {
    content: '-';
    background: var(--cm-text-color);
}
.cm-message .custommenu-folder::before {
  display: none;
}

/* 6. 알림판 (Alertboard) - 기반 CSS의 툴팁과 별개로 작동 */
.cm-message .alertboard {
    position: absolute;
    top: -30px;
    height: 22px;
    background: var(--cm-point-color);
    color: var(--cm-point-color-auto);
    display: flex;
    align-items: center;
    border-radius: 10px;
    padding: 0 15px;
    font-size: 12px;
    backdrop-filter: blur(4px);
    border: 1px solid var(--cm-base-color);
    white-space: nowrap;
}