/* 
 버전 1.6.8
링크를 안으로 + 대메뉴 tooltip
*/
.mini-switch {
    position: relative;
    display: inline-block;
    width: 32px;
    height: 16px;
    margin-left:4px;
}

.mini-switch input {
    opacity: 0;
    width: 0;
    height: 0;
}

.mini-switch span {
    position: absolute;
    cursor: pointer;
    background: #888;
    border-radius: 16px;
    top: 0; left: 0; right: 0; bottom: 0;
    transition: .2s;
}

.mini-switch span:before {
    position: absolute;
    content: "";
    height: 12px;
    width: 12px;
    left: 2px;
    bottom: 2px;
    background: white;
    border-radius: 50%;
    transition: .2s;
}

.mini-switch input:checked + span {
    background: #4dabf7;
}

.mini-switch input:checked + span:before {
    transform: translateX(16px);
}






/* 2차추가  */

    .yyhe-switch {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    padding: 4px 8px;
    border: 1px solid rgba(127, 127, 127, .28);
    border-radius: 12px;
    background: rgba(255, 255, 255, .03);
}
    
.yyhe-switch-input:before {
    content: "";
    position: absolute;
    top: 3px;
    left: 3px;
    width: 16px;
    height: 16px;
    border-radius: 99px;
    background: #fff;
    opacity: .9;
    transition: all .15s ease;
}
    

/* mini switch */
.mini-switch{position:relative;display:inline-block;width:34px;height:18px;}
.mini-switch input{opacity:0;width:0;height:0;}
.mini-switch span{
    position:absolute;cursor:pointer;top:0;left:0;right:0;bottom:0;
    background:#777;border-radius:18px;transition:.15s;
}
.mini-switch span:before{
    position:absolute;content:"";height:14px;width:14px;left:2px;bottom:2px;
    background:#fff;border-radius:50%;transition:.15s;
}
.mini-switch input:checked + span{background:#4dabf7;}
.mini-switch input:checked + span:before{transform:translateX(16px);}

.result-pre a{text-decoration:none;}
.result-pre a:hover{text-decoration:underline;}

.selct-none { -webkit-user-select: none; -moz-user-select: none; -ms-user-select: none; user-select: none; } 

/* 아코디언 스타일 */
.accordion-button::before {
    content: '📁';
    margin-right: 6px;
}
.icon-btn.w-100 {
    width: 100%;
    justify-content: flex-start;
}
.accordion-item {
    background: transparent;
    border: 1px solid var(--border);
    margin-bottom: 2px;
    border-radius: 6px;
    overflow: hidden;
}
.accordion-button {
    background: var(--panel2);
    color: var(--text);
    padding: 6px 10px;
    font-size: 0.9rem;
}
.accordion-button:not(.collapsed) {
    background: var(--panel);
}
.accordion-body {
    background: var(--bg);
    padding: 8px;
}


/* badge-outline 커스텀 스타일 (임시) */
.badge-outline {
    border: 1px solid currentColor !important;
    background-color: transparent !important;
}
.badge-outline.primary {
    border-color: #0d6efd !important;
    color: #0d6efd !important;
}
.badge-outline.secondary {
    border-color: #6c757d !important;
    color: #6c757d !important;
}
.badge-soft {
    background-color: rgba(108, 117, 125, 0.1) !important;
    color: #6c757d !important;
    border: none !important;
}




body{font-family:Consolas;margin:10px;background:var(--bg);color:var(--text);}
.container{max-width:100%;margin:auto;}
.result-pre{white-space:pre;overflow:auto;background:var(--input-bg);padding:0px 15px 15px 15px;border:1px solid var(--border);border-radius: 6px;}

.topbar{display:flex;justify-content:space-between;align-items:flex-start;margin-bottom:8px;} /* ✅ align-top */
.left-icons{display:flex;flex-direction:column;gap:2px;width:100%;} /* ✅ 전체 너비 사용 */
.right-icons{display:flex;gap:2px;align-items:center;}

#favCfgToolbar .fav-toolbar-actions{
    margin-left:auto;
    flex-wrap:wrap;
    justify-content:flex-end;
}
.icon-btn{
    height:25px;
    min-width: 12px;
    padding:0 2px 1px 2px;
    display:inline-flex;
    align-items:center;
    justify-content:center;
    border:1px solid var(--border);
    background:var(--panel2);
    text-decoration:none;
    color:var(--text);
    border-radius:6px;
    cursor:pointer;
    white-space:nowrap;
}
.icon-btn:hover{background:var(--panel);}

.cmd-run-box{
    align-self: stretch;
}

.cmd-run-btn{
    height: 100%;
    min-height: 96px;
    padding: 0 10px;
    font-size: 18px;
}

 .command-area {
    width: 100%;
    min-height: unset !important;     /* 강제 초기화 */
    height: auto !important;
    margin-bottom: 1.5rem;            /* 결과창과의 여백 */
}

.cmd-input {
    display: flex;
    flex-direction: row;
    gap: 10px;
    align-items: flex-start;          /* 중요 */
    width: 100%;
    height: auto !important;          /* ← 핵심 */
    min-height: unset !important;
}

.cmd-textarea {
    flex: 1 1 auto;                   /* flex-grow 먹히게 */
    width: 100%;
    min-height: 42px;
    height: auto !important;          /* auto 필수 */
    /*max-height: 60vh;                너무 커지지 않게 상한 - 선택사항 */
    resize: vertical;
    overflow-y: auto;
    padding: 8px 12px;
    box-sizing: border-box;
    font-size: 14px;
    line-height: 1.5;
}

/* 결과창은 문서 흐름에 확실히 포함 */
.result-pre {
    position: static !important;
    display: block;
    width: 100%;
    min-height: 120px;
    height: auto;
    margin-top: 1rem;
    margin-bottom: 2rem;
    overflow: auto;
    /* 나머지 스타일 유지 */
}

/* 전체 컨테이너도 자유롭게 늘어나게 */
.container {
    height: auto !important;
    min-height: unset !important;
    overflow: visible !important;
    padding-bottom: 1rem;             /* 하단 여유 */
}
     
.result-pre{ 
    
    position: static !important;   /* ← 이 한 줄만 넣어보세요 (또는 relative) */
    /* 기존에 position: absolute; 가 있었다면 지우거나 주석 */
    
    margin-top: 16px;              /* textarea와 간격 벌리기 */
    width: 100%;
    /* 나머지 스타일 유지 */

    }
.abs_right{
    position: absolute;
    top: 6px;
    right: 10px;
    xxbackground: rgba(0,0,0,0.6);
    padding: 10px 6px;
    border-radius: 4px;
    font-size: 12px;
}
/* 대메뉴 활성화 표시 */
.main-menu-item.active-menu {
    font-weight: 700;
    border-width: 1px;
}

html[data-bs-theme="light"] .main-menu-item.active-menu,
html:not([data-bs-theme]) .main-menu-item.active-menu {
    background: rgba(13,110,253,.10) !important;
    color: var(--text) !important;
    border-color: rgba(13,110,253,.50) !important;
    box-shadow:
        0 0 0 .12rem rgba(13,110,253,.10),
        inset 0 0 0 1px rgba(255,255,255,.35);
}

html[data-bs-theme="dark"] .main-menu-item.active-menu {
    background: rgba(13,110,253,.20) !important;
    color: var(--text) !important;
    border-color: rgba(110,168,254,.72) !important;
    box-shadow:
        0 0 0 .14rem rgba(13,110,253,.22),
        inset 0 0 0 1px rgba(255,255,255,.10);
}

/* 소메뉴 컨테이너 */
#subMenuContainer {
    background: var(--input-bg);
    border: 1px solid var(--border);
    border-radius: 6px;
    padding: 6px;
    min-height: 40px;
}
    
.cmd-input {
    display: flex;
    flex-direction: row;
    gap: 8px;
    align-items: flex-start;     /* ← 핵심: center 대신 flex-start */
}

.cmd-textarea {
    min-height: 38px;
    height: auto;
    resize: vertical;
    width: 100%;
    padding: 8px 10px;
    font-family: Consolas, monospace;
    font-size: 14px;
    line-height: 1.4;
    border: 1px solid var(--border);
    border-radius: 6px;
    background: var(--input-bg);
    color: var(--input-text);
}

/* 아주 여러 줄 입력 시 너무 커지지 않게 제한하고 싶을 때 */
.cmd-textarea {
    /* max-height: 45vh;          선택사항 */
    overflow-y: auto;
}    
    
.container {
    min-height: auto !important;     /* 또는 삭제 */
    height: auto !important;
    overflow: visible !important;    /* hidden → visible */
}

.result-pre {
    /* 만약 height나 max-height가 있다면 */
    height: auto;
    max-height: none;
}

    .command-area,
.result-area {
    width: 100%;
    position: relative;   /* 필요 시 */
}

.result-pre {
    position: static;
    margin: 0;
    padding: 1rem;
    }

/* grep 결과 하이라이트 */
.grep-highlight {
    background-color: #ff0;
    color: #000;
    font-weight: bold;
    padding: 0 2px;
    border-radius: 3px;
}


.fav-group{
  display:inline-block;
  padding:2px 8px;
  margin:2px 3px;
  border:1px solid #555;
  border-radius:7px;
  background:#1f1f1f;
  color:#ddd;
  font-size:13px;
  line-height:1.35;
  cursor:pointer;
}

.fav-group.active{
  font-weight:700;
  box-shadow:0 0 0 1px rgba(255,255,255,.12) inset;
}
.grp-default{ color:#ddd; }
.grp-gray{ color:#94a3b8; }
.grp-red{ color:#ef4444; }
.grp-orange{ color:#f97316; }
.grp-yellow{ color:#eab308; }
.grp-green{ color:#22c55e; }
.grp-cyan{ color:#06b6d4; }
.grp-blue{ color:#3b82f6; }
.grp-indigo{ color:#6366f1; }
.grp-purple{ color:#a855f7; }
.grp-pink{ color:#ec4899; } 

.grp-default.active-menu{ color:#fff; }
.grp-gray.active-menu{ color:#cbd5e1; }
.grp-red.active-menu{ color:#ff8a8a; }
.grp-orange.active-menu{ color:#ffb067; }
.grp-yellow.active-menu{ color:#ffd84d; }
.grp-green.active-menu{ color:#6ee7a2; }
.grp-cyan.active-menu{ color:#67e8f9; }
.grp-blue.active-menu{ color:#93c5fd; }
.grp-indigo.active-menu{ color:#a5b4fc; }
.grp-purple.active-menu{ color:#d8b4fe; }
.grp-pink.active-menu{ color:#f9a8d4; }



/*CodeMirror추가 시작*/
.cmd-input .CodeMirror{
    width: 100% !important;
    min-height: 96px;
    border: 1px solid var(--border);
    border-radius: 8px;
    background: var(--input-bg);
    color: var(--input-text);
    font-family: Consolas, Monaco, 'Courier New', monospace;
    font-size: 14px;
    line-height: 1.45;
    overflow: hidden;
}

.cmd-input .CodeMirror-scroll{
    min-height: 96px;
}

.cmd-input .CodeMirror-gutters{
    background: color-mix(in srgb, var(--input-bg) 86%, #8892a0 14%);
    border-right: 1px solid var(--border);
}

.cmd-input .CodeMirror-linenumber{
    color: var(--text);
    opacity: .65;
    padding: 0 8px 0 6px;
}

.cmd-input .CodeMirror-focused{
    outline: none;
    box-shadow: 0 0 0 .18rem rgba(13,110,253,.18);
}

html[data-bs-theme="dark"] .cmd-input .CodeMirror{
    background: #23283a;
    color: #e8edf7;
}

html[data-bs-theme="dark"] .cmd-input .CodeMirror-gutters{
    background: #1d2230;
    border-right: 1px solid #343b4f;
}

html[data-bs-theme="light"] .cmd-input .CodeMirror,
html:not([data-bs-theme]) .cmd-input .CodeMirror{
    background: #f8f9fc;
    color: #111827;
}

html[data-bs-theme="light"] .cmd-input .CodeMirror-gutters,
html:not([data-bs-theme]) .cmd-input .CodeMirror-gutters{
    background: #eef1f6;
    border-right: 1px solid #d6dbe6;
}
/*CodeMirror추가끝.*/

.btn-theme-text,
.btn-theme-text:hover,
.btn-theme-text:focus,
.btn-theme-text:active {
    color: #212529;
}

[data-bs-theme="dark"] .btn-theme-text,
[data-bs-theme="dark"] .btn-theme-text:hover,
[data-bs-theme="dark"] .btn-theme-text:focus,
[data-bs-theme="dark"] .btn-theme-text:active {
    color: #fff;
}


/* ===== 대메뉴 6-zone BS5 레이아웃 시작 ===== */
#mainMenuToolbar .btn.is-on{
    border-color:#0d6efd;
    box-shadow:0 0 0 .12rem rgba(13,110,253,.18);
}

#mainMenuLayout.menu-layout{
    margin-bottom:8px;
}

#mainMenuLayout.menu-layout.row{
    --bs-gutter-x:.5rem;
    --bs-gutter-y:.5rem;
}

#mainMenuLayout .menu-zone{
    min-height:48px;
    padding:6px;
    border:1px dashed var(--border);
    border-radius:10px;
    display:flex;
    flex-wrap:wrap;
    gap:6px;
    align-content:flex-start;
    background:var(--panel2);
    transition:all .15s ease;
}

html[data-bs-theme="light"] #mainMenuLayout .menu-zone,
html:not([data-bs-theme]) #mainMenuLayout .menu-zone{
    background:#f8fafc;
}

html[data-bs-theme="dark"] #mainMenuLayout .menu-zone{
    background:#1d2330;
}

#mainMenuLayout .menu-zone[data-zone="zone1"]{
    background:color-mix(in srgb, var(--panel2) 86%, #0d6efd 14%);
}

#mainMenuLayout .menu-zone[data-zone="zone2"]{
    background:color-mix(in srgb, var(--panel2) 88%, #198754 12%);
}

#mainMenuLayout .menu-zone[data-zone="zone3"]{
    background:color-mix(in srgb, var(--panel2) 88%, #ffc107 12%);
}

#mainMenuLayout .menu-zone[data-zone="zone4"]{
    background:color-mix(in srgb, var(--panel2) 88%, #6f42c1 12%);
}

#mainMenuLayout .menu-zone[data-zone="zone5"]{
    background:color-mix(in srgb, var(--panel2) 88%, #0dcaf0 12%);
}

#mainMenuLayout .menu-zone[data-zone="zone6"]{
    background:color-mix(in srgb, var(--panel2) 88%, #fd7e14 12%);
}

#mainMenuLayout .menu-zone.is-over{
    border-style:solid;
    border-color:#0d6efd;
    box-shadow:0 0 0 .15rem rgba(13,110,253,.12);
}

#mainMenuLayout .menu-zone.is-empty{
    opacity:.92;
}

#mainMenuLayout .main-menu-item{
    min-height:30px;
    padding:2px 8px 3px 8px;
}

body.menu-edit-on #mainMenuLayout .main-menu-item{
    cursor:grab;
    user-select:none;
}

body.menu-edit-on #mainMenuLayout .main-menu-item.is-dragging{
    opacity:.45;
}

body.menu-edit-on #mainMenuLayout .main-menu-item.is-drop-target{
    border-color:#0d6efd !important;
    box-shadow:0 0 0 .12rem rgba(13,110,253,.16);
}
/* ===== 대메뉴 6-zone BS5 레이아웃 끝 ===== */
 
/* ===== 2차 미세조정: light/dark 대비 + 테두리 강화 ===== */

/* 1) grp-default 를 테마별로 분리 */
html[data-bs-theme="light"] .grp-default,
html:not([data-bs-theme]) .grp-default{
    color:#495057 !important;
}

html[data-bs-theme="light"] .grp-default.active-menu,
html:not([data-bs-theme]) .grp-default.active-menu{
    color:#1f2937 !important;
    background:linear-gradient(180deg, #ffffff 0%, #f1f3f5 100%) !important;
    border-color:#adb5bd !important;
    box-shadow:
        inset 0 0 0 1px rgba(255,255,255,.85),
        0 1px 2px rgba(0,0,0,.08);
}

html[data-bs-theme="dark"] .grp-default{
    color:#d5d9e0 !important;
}

html[data-bs-theme="dark"] .grp-default.active-menu{
    color:#ffffff !important;
    background:linear-gradient(180deg, #2b3142 0%, #202636 100%) !important;
    border-color:#7f8aa3 !important;
    box-shadow:
        inset 0 0 0 1px rgba(255,255,255,.06),
        0 1px 2px rgba(0,0,0,.28);
}

/* 2) 대메뉴 버튼 전체를 조금 또렷하게 */
#mainMenuLayout .main-menu-item{
    border-width:1px;
    border-style:solid;
    border-color:rgba(127,127,127,.28);
    font-weight:500;
    transition:all .14s ease;
}

html[data-bs-theme="light"] #mainMenuLayout .main-menu-item{
    box-shadow:inset 0 0 0 1px rgba(255,255,255,.35);
}

html[data-bs-theme="dark"] #mainMenuLayout .main-menu-item{
    box-shadow:inset 0 0 0 1px rgba(255,255,255,.03);
}

#mainMenuLayout .main-menu-item:hover{
    transform:translateY(-1px);
}

/* 3) active 상태를 그룹 공통으로 더 분명하게 */
#mainMenuLayout .main-menu-item.active-menu{
    font-weight:700;
    border-width:1px;
    box-shadow:
        0 0 0 .12rem rgba(13,110,253,.12),
        inset 0 0 0 1px rgba(255,255,255,.10);
}

/* 4) zone 테두리/배경을 조금 더 강하게 */
#mainMenuLayout .menu-zone{
    border-width:1px;
    border-style:dashed;
}

html[data-bs-theme="light"] #mainMenuLayout .menu-zone{
    border-color:#cfd4da;
    box-shadow:inset 0 0 0 1px rgba(255,255,255,.55);
}

html[data-bs-theme="dark"] #mainMenuLayout .menu-zone{
    border-color:#495057;
    box-shadow:inset 0 0 0 1px rgba(255,255,255,.03);
}

#mainMenuLayout .menu-zone.is-over{
    border-style:solid !important;
    border-color:#0d6efd !important;
    box-shadow:
        0 0 0 .16rem rgba(13,110,253,.14),
        inset 0 0 0 1px rgba(255,255,255,.08);
}

/* 5) 수정 모드일 때 드래그 가능 상태를 더 분명하게 */
body.menu-edit-on #mainMenuLayout .main-menu-item{
    cursor:grab;
}

body.menu-edit-on #mainMenuLayout .main-menu-item::before{
    content:"⋮⋮ ";
    opacity:.45;
    font-weight:400;
}

body.menu-edit-on #mainMenuLayout .main-menu-item.is-dragging{
    opacity:.50;
    transform:scale(.985);
}

/* 6) 빈 zone 이 너무 휑하지 않게 */
#mainMenuLayout .menu-zone.is-empty{
    min-height:56px;
}




/* ===== 3차: 수정 하위모드(그룹배치/서브이동) ===== */
#menuEditModeWrap{
    margin-left: 4px;
}

#menuEditModeWrap .btn.is-on{
    border-color:#198754;
    box-shadow:0 0 0 .12rem rgba(25,135,84,.14);
}

#menuEditHint{
    padding-left: 2px;
    white-space: nowrap;
}

body.menu-edit-subs-on #mainMenuLayout .main-menu-item{
    cursor:pointer;
}

body.menu-edit-subs-on #mainMenuLayout .main-menu-item.is-submove-target{
    border-style:dashed;
}

body.menu-edit-subs-on #mainMenuLayout .main-menu-item.is-submove-target:hover{
    border-color:#198754 !important;
    box-shadow:0 0 0 .12rem rgba(25,135,84,.12);
}

#subMenuContainer.submove-mode{
    border-color:#198754;
    box-shadow:inset 0 0 0 1px rgba(25,135,84,.08);
}

#subMenuContainer .sub-menu-item.is-submove-item{
    position:relative;
}

#subMenuContainer .sub-menu-item.is-submove-item::before{
    content:"☐ ";
    opacity:.60;
}

#subMenuContainer .sub-menu-item.is-selected{
    border-color:#198754 !important;
    background:linear-gradient(180deg, rgba(25,135,84,.10) 0%, rgba(25,135,84,.18) 100%) !important;
    box-shadow:0 0 0 .14rem rgba(25,135,84,.12);
    font-weight:700;
}

#subMenuContainer .sub-menu-item.is-selected::before{
    content:"☑ ";
    opacity:1;
}
/* ===== 3차: 수정 하위모드(그룹배치/서브이동) 끝===== */

/* ===== 4차: 서브이동 드래그형 최종 ===== */

/* 그룹 핸들은 그룹배치 모드에서만 */
body.menu-edit-on #mainMenuLayout .main-menu-item::before{
    content:"";
    display:none;
}

body.menu-edit-groups-on #mainMenuLayout .main-menu-item::before{
    content:"⋮⋮ ";
    display:inline;
    opacity:.45;
    font-weight:400;
}

/* 서브이동 모드에서는 상단 그룹은 드롭 대상 */
body.menu-edit-subs-on #mainMenuLayout .main-menu-item{
    cursor:default;
}

body.menu-edit-subs-on #mainMenuLayout .main-menu-item.is-submove-target{
    cursor:pointer;
    border-style:dashed;
}

body.menu-edit-subs-on #mainMenuLayout .main-menu-item.is-submove-target.is-drop-target{
    border-color:#198754 !important;
    box-shadow:0 0 0 .14rem rgba(25,135,84,.14);
}

/* 서브이동 모드에서는 하단 서브에만 핸들 표시 */
#subMenuContainer .sub-menu-item.is-submove-item{
    position:relative;
    cursor:grab;
}

#subMenuContainer .sub-menu-item.is-submove-item::before{
    content:"⋮⋮ ";
    opacity:.55;
    font-weight:400;
}

#subMenuContainer .sub-menu-item.is-submove-item.is-dragging{
    opacity:.50;
    transform:scale(.985);
}

/* 예전 체크형 표시 무효화 */
#subMenuContainer .sub-menu-item.is-submove-item.is-selected{
    box-shadow:none;
    font-weight:inherit;
    background:var(--panel2) !important;
    border-color:var(--border) !important;
}

#subMenuContainer .sub-menu-item.is-submove-item.is-selected::before{
    content:"⋮⋮ ";
    opacity:.55;
}

/* ===== 5차: 그룹배치 때 하단 서브는 드래그 불가처럼 보이게 ===== */

/* 그룹배치 모드에서는 하단 서브에 핸들/선택/드롭 느낌 제거 */
body.menu-edit-groups-on #subMenuContainer .sub-menu-item{
    cursor:default !important;
}

body.menu-edit-groups-on #subMenuContainer .sub-menu-item::before{
    content:"" !important;
    display:none !important;
}

body.menu-edit-groups-on #subMenuContainer .sub-menu-item.is-submove-item{
    box-shadow:none !important;
    border-color:var(--border) !important;
    background:var(--panel2) !important;
    transform:none !important;
    opacity:1 !important;
}

/* 서브이동 모드에서만 하단 서브에 핸들 표시 */
body.menu-edit-subs-on #subMenuContainer .sub-menu-item.is-submove-item{
    cursor:grab !important;
}

body.menu-edit-subs-on #subMenuContainer .sub-menu-item.is-submove-item::before{
    content:"⋮⋮ " !important;
    display:inline !important;
    opacity:.55;
    font-weight:400;
}

/* 서브이동 모드: 하단 서브 재정렬 표시 */
#subMenuContainer.submove-mode.is-sub-drop-over{
    border-color:#198754;
    box-shadow:inset 0 0 0 1px rgba(25,135,84,.10);
}

#subMenuContainer.submove-mode .sub-menu-item.is-drop-target{
    border-color:#198754 !important;
    box-shadow:0 0 0 .12rem rgba(25,135,84,.12);
}
/* 서브메뉴 선택 표시 */
#subMenuContainer .sub-menu-item.active-sub-menu{
    font-weight:700;
    border-width:1px;
    transition:all .12s ease;
}

html[data-bs-theme="light"] #subMenuContainer .sub-menu-item.active-sub-menu,
html:not([data-bs-theme]) #subMenuContainer .sub-menu-item.active-sub-menu{
    background:rgba(13,110,253,.08) !important;
    color:var(--text) !important;
    border-color:rgba(13,110,253,.45) !important;
    box-shadow:
        0 0 0 .10rem rgba(13,110,253,.08),
        inset 0 0 0 1px rgba(255,255,255,.38);
}

html[data-bs-theme="dark"] #subMenuContainer .sub-menu-item.active-sub-menu{
    background:rgba(13,110,253,.18) !important;
    color:var(--text) !important;
    border-color:rgba(110,168,254,.68) !important;
    box-shadow:
        0 0 0 .12rem rgba(13,110,253,.20),
        inset 0 0 0 1px rgba(255,255,255,.10);
}

/* ===== 서브 휴지통 / auto 빠른 변경 시작 ===== */

#btnMenuTrashToggle{
    min-width:32px;
    padding-left:6px;
    padding-right:6px;
}

#subMenuContainer .sub-menu-item{
    position:relative;
}

#subMenuContainer .sub-menu-item.state-trash{
    opacity:.58;
    text-decoration:line-through;
}

#subMenuContainer .sub-state-tools{
    display:none;
    align-items:center;
    gap:2px;
    margin-left:6px;
    vertical-align:middle;
}

body.menu-edit-subs-on #subMenuContainer .sub-menu-item:hover .sub-state-tools{
    display:inline-flex;
}

#subMenuContainer .sub-state-btn{
    display:inline-flex;
    align-items:center;
    justify-content:center;
    min-width:18px;
    height:18px;
    padding:0 3px;
    border:1px solid var(--border);
    border-radius:6px;
    background:var(--panel);
    color:var(--text);
    font-size:12px;
    line-height:1;
    cursor:pointer;
    text-decoration:none;
}

#subMenuContainer .sub-state-btn:hover{
    filter:brightness(1.12);
    transform:translateY(-1px);
}

/* auto 표시 확장용 */
#subMenuContainer .sub-menu-item.auto-box0{
    border-style:dashed;
}

#subMenuContainer .sub-menu-item.auto-box1{
    border-style:solid;
}

/* ===== 서브 휴지통 / auto 빠른 변경 끝 ===== */
/* ===== 그룹/서브 휴지통 표시 ===== */
/* ===== 그룹/서브 상태/링크/휴지통 통합 ===== */

/* 그룹/서브 휴지통 표시 */
#mainMenuLayout .main-menu-item.state-trash,
#subMenuContainer .sub-menu-item.state-trash{
    opacity:.55;
    text-decoration:line-through;
}

/* 휴지통 토글 버튼 */
#btnMenuTrashToggle{
    min-width:32px;
    padding-left:6px;
    padding-right:6px;
}

/* 서브 아이템 기본 */
#subMenuContainer .sub-menu-item{
    position:relative;
}

#subMenuContainer{
    overflow:visible;
}

#subMenuContainer .sub-menu-item{
    position:relative;
    overflow:visible;
}

#subMenuContainer .sub-state-tools{
    position:absolute;
    left:50%;
    top:100%;
    transform:translate(-50%, 1px);
    display:inline-flex;
    align-items:center;
    gap:3px;
    padding:5px 7px;
    margin-left:0;
    z-index:3000;
    visibility:hidden;
    opacity:0;
    pointer-events:none;
    white-space:nowrap;
    background:var(--panel2);
    border:1px solid var(--border);
    border-radius:8px;
    box-shadow:0 4px 12px rgba(0,0,0,.22);
}

#subMenuContainer .sub-state-tools::before{
    content:"";
    position:absolute;
    left:-10px;
    top:-14px;
    width:calc(100% + 20px);
    height:16px;
}

/* 서브이동 모드: 서브 버튼 아래에 🔗 🗑 ⓪ ① 표시 */
body.menu-edit-subs-on #subMenuContainer .sub-menu-item:hover .sub-state-tools,
body.menu-edit-subs-on #subMenuContainer .sub-state-tools:hover{
    visibility:visible;
    opacity:1;
    pointer-events:auto;
}

/* 일반 모드: 링크 있는 서브는 🔗를 항상 인라인 표시 */
#subMenuContainer .sub-state-tools.sub-link-tools{
    position:static;
    left:auto;
    top:auto;
    transform:none;
    display:inline-flex;
    visibility:visible;
    opacity:1;
    pointer-events:auto;
    padding:0;
    margin-left:6px;
    background:transparent;
    border:0;
    border-radius:0;
    box-shadow:none;
    vertical-align:middle;
}

#subMenuContainer .sub-state-tools.sub-link-tools::before{
    display:none;
}

/* 서브 상태 버튼 */
#subMenuContainer .sub-state-btn{
    display:inline-flex;
    align-items:center;
    justify-content:center;
    min-width:18px;
    height:18px;
    padding:0 3px;
    border:1px solid var(--border);
    border-radius:6px;
    background:var(--panel);
    color:var(--text);
    font-size:12px;
    line-height:1;
    cursor:pointer;
    text-decoration:none;
    user-select:none;
}

#subMenuContainer .sub-state-btn:hover{
    filter:brightness(1.12);
    transform:translateY(-1px);
}

/* auto 표시 */
#subMenuContainer .sub-menu-item.auto-box0{
    border-style:dashed;
}

#subMenuContainer .sub-menu-item.auto-box1{
    border-style:solid;
}

/* 그룹 아이콘 오버레이: 버튼 폭 증가 방지 + hover 끊김 방지 */
#mainMenuLayout,
#mainMenuLayout .menu-zone,
#mainMenuLayout .main-menu-item{
    overflow:visible;
}

#mainMenuLayout .main-menu-item{
    position:relative;
    z-index:1;
}

#mainMenuLayout .main-menu-item:hover{
    z-index:2000;
}

/* 그룹 상태 도구: 대메뉴 오른쪽에 떠 있게 */
#mainMenuLayout .group-state-tools{
    position:absolute;
    left:50%;
    top:100%;
    transform:translate(-50%, 1px);
    display:inline-flex;
    align-items:center;
    gap:3px;
    padding:5px 7px;
    margin-left:0;
    z-index:3000;
    visibility:hidden;
    opacity:0;
    pointer-events:none;
    white-space:nowrap;
    background:var(--panel2);
    border:1px solid var(--border);
    border-radius:8px;
    box-shadow:0 4px 12px rgba(0,0,0,.22);
}

/* 대메뉴와 아이콘 사이 hover 다리 */
#mainMenuLayout .group-state-tools::before{
    content:"";
    position:absolute;
    left:0;
    top:0;
    width:8px;
    height:100%;
}

/* 그룹배치 모드에서만 그룹 상태 아이콘 표시 */
body.menu-edit-groups-on #mainMenuLayout .main-menu-item:hover .group-state-tools,
body.menu-edit-groups-on #mainMenuLayout .group-state-tools:hover{
    visibility:visible;
    opacity:1;
    pointer-events:auto;
}

/* 일반 모드: 링크 있는 대메뉴도 🔗를 버튼 안에 인라인 표시 */
#mainMenuLayout .group-state-tools.group-link-tools{
    position:static;
    left:auto;
    top:auto;
    transform:none;
    display:inline-flex;
    visibility:visible;
    opacity:1;
    pointer-events:auto;
    padding:0;
    margin-left:6px;
    background:transparent;
    border:0;
    border-radius:0;
    box-shadow:none;
    vertical-align:middle;
}

#mainMenuLayout .group-state-tools.group-link-tools::before{
    display:none;
}

/* 그룹 상태 버튼 */
#mainMenuLayout .group-state-btn{
    display:inline-flex;
    align-items:center;
    justify-content:center;
    min-width:18px;
    height:18px;
    padding:0 3px;
    border:1px solid var(--border);
    border-radius:6px;
    background:var(--panel);
    color:var(--text);
    font-size:12px;
    line-height:1;
    cursor:pointer;
    text-decoration:none;
    user-select:none;
}

#mainMenuLayout .group-state-btn:hover{
    filter:brightness(1.12);
    transform:translateY(-1px);
}

/* 링크 팝업 */
#fav-link-dialog{
    min-width:360px;
    padding:14px;
    border:1px solid var(--border);
    border-radius:10px;
    background:var(--panel2);
    color:var(--text);
}

#fav-link-dialog label{
    display:block;
    margin-bottom:4px;
}

#fav-link-dialog input{
    width:100%;
}

/* ===== 그룹/서브 상태/링크/휴지통 통합 끝 ===== */

/* tmux action tray: tmux 버튼 아래에 링크/수정/삭제 표시 */
#favCfgToolbar,
#yyCmdTmuxToolbar,
#yyCmdTmuxToolbar .yy-tmux-box{
    overflow: visible;
}

#yyCmdTmuxToolbar .yy-tmux-box{
    position: relative;
    z-index: 1;
}

#yyCmdTmuxToolbar .yy-tmux-box:hover,
#yyCmdTmuxToolbar .yy-tmux-box:focus-within{
    z-index: 3500;
}

#yyCmdTmuxToolbar .yy-tmux-action-tray{
    display: none;
    position: absolute;
    top: calc(100% + 5px);
    left: 50%;
    transform: translateX(-50%);
    z-index: 3600;
    gap: 3px;
    padding: 5px 7px;
    border: 1px solid var(--border);
    border-radius: 8px;
    background: var(--panel2, var(--input-bg));
    box-shadow: 0 4px 12px rgba(0,0,0,.25);
    white-space: nowrap;
}

/* tmux 버튼과 아래 액션 트레이 사이 hover 다리 */
#yyCmdTmuxToolbar .yy-tmux-action-tray::before{
    content: "";
    position: absolute;
    left: -12px;
    top: -14px;
    width: calc(100% + 24px);
    height: 16px;
    background: transparent;
}

#yyCmdTmuxToolbar .yy-tmux-box:hover > .yy-tmux-action-tray,
#yyCmdTmuxToolbar .yy-tmux-box:focus-within > .yy-tmux-action-tray,
#yyCmdTmuxToolbar .yy-tmux-action-tray:hover{
    display: inline-flex;
}

#yyCmdTmuxToolbar .yy-tmux-action-tray .yy-tmux-action{
    padding: 1px 5px;
    line-height: 1.35;
}

/* ===== 공용 세션 버튼 hover tray 시작 ===== */
.yy-session-host{
    position:relative;
    display:inline-flex;
    align-items:center;
    gap:4px;
}

.yy-session-action-tray{
    position:absolute;
    left:50%;
    top:100%;
    transform:translateX(-50%);
    display:flex;
    align-items:center;
    gap:4px;
    padding-top:7px;
    opacity:0;
    visibility:hidden;
    pointer-events:none;
    z-index:50;
    transition:opacity .14s ease, visibility .14s ease;
}

.yy-session-action-tray::before{
    content:"";
    position:absolute;
    left:0;
    right:0;
    top:0;
    height:9px;
}

.yy-session-host:hover .yy-session-action-tray,
.yy-session-action-tray:hover{
    opacity:1;
    visibility:visible;
    pointer-events:auto;
}

.yy-session-action{
    padding:0.2rem 0.42rem;
    line-height:1.15;
    box-shadow:0 2px 8px rgba(0,0,0,.18);
}

#yy-xterm-session-dialog{
    max-width:520px;
    width:min(520px, calc(100vw - 32px));
    border:1px solid var(--border);
    border-radius:10px;
    background:var(--input-bg);
    color:var(--text);
    padding:14px;
}

#yy-xterm-session-dialog::backdrop{
    background:rgba(0,0,0,.35);
}

#yy-xterm-session-dialog menu{
    margin:0;
    padding:0;
}
/* ===== 공용 세션 버튼 hover tray 끝 ===== */
body.menu-edit-subs-on #subMenuContainer .sub-menu-item:hover{
    z-index:9998;
}
#fav-group-tooltip-wrap input{
    width:100%;
}

/* v0.5.12: 버튼/배지 텍스트 드래그 선택 허용 */
.btn, .btn *, .badge, .badge *, button, button * {
    user-select: text !important;
    -webkit-user-select: text !important;
}


/* v0.5.14: 서브메뉴 자동/수동 테두리 얇게 */
#subMenu .icon-btn,
#subMenu .sub-menu-item,
.sub-menu-item {
    border-width: 1px !important;
}
