@import url("./module-workspace.css");
@import url("./mail-navigation.css");

/* 주소록·일정 기준. 업무 모듈의 좌측 탐색에만 적용합니다. */
:is(.app-shell .content, .teams-garam-content) .module-navigation {
    --module-menu-font-size: 13.5px;
    padding: 1.25rem 1rem;
    color: var(--text);
    background: var(--module-sidebar-background) !important;
}

:is(.app-shell .content, .teams-garam-content) .module-navigation > :is(header, .subnav-brand) {
    display: flex;
    align-items: flex-start !important;
    justify-content: space-between;
    gap: .75rem;
    box-sizing: border-box;
    height: 80px;
    min-height: 80px;
    flex: 0 0 80px;
    margin: 0 0 1rem !important;
    padding: 0 .35rem 1rem !important;
    border-bottom: 1px solid var(--border);
}

:is(.app-shell .content, .teams-garam-content) .module-navigation > :is(header, .subnav-brand) > div { min-width: 0; }
:is(.app-shell .content, .teams-garam-content) .module-navigation > :is(header, .subnav-brand) :is(h1, h2) {
    margin: .15rem 0 0;
    padding: 0;
    color: var(--text);
    font-size: var(--module-title-font-size, 1.45rem);
    font-weight: 800;
    line-height: 1.15;
    letter-spacing: normal;
    text-transform: none;
    overflow-wrap: anywhere;
}
:is(.app-shell .content, .teams-garam-content) .module-navigation > :is(header, .subnav-brand) :is(div > span, .module-navigation-label) {
    display: block;
    color: var(--accent-light);
    font-size: 11px;
    font-weight: 800;
    letter-spacing: .12em;
}
:is(.app-shell .content, .teams-garam-content) .module-navigation > :is(header, .subnav-brand) small {
    display: block;
    margin-top: .2rem;
    color: var(--muted);
    font-size: .72rem;
}
:is(.app-shell .content, .teams-garam-content) .module-navigation > :is(header, .subnav-brand) > :is(button, i) {
    align-self: center;
    display: grid;
    width: 34px;
    min-width: 34px;
    height: 34px;
    flex: 0 0 34px;
    padding: 0;
    place-items: center;
    border: 1px solid var(--border);
    border-radius: 9px;
    background: var(--surface);
    color: var(--muted);
}
:is(.app-shell .content, .teams-garam-content) .module-navigation > :is(header, .subnav-brand) > button:hover {
    color: var(--accent-light);
    border-color: var(--accent);
}

/* 버튼에 적용되는 전역 .8rem 규칙보다 메뉴 역할의 규격을 우선합니다. */
:is(.app-shell .content, .teams-garam-content) .module-navigation :is(
    .folder-button, .unread-folder-button, .tree-row, .tree-item, .folder-row,
    .approval-nav-item, .nav-item, .notice-category-item, .department-tree-row label,
    .community-tree-home, .community-tree-link, .edms-document-link,
    .edms-common-actions > a, .edms-common-actions > button,
    .schedule-filter-menu > button, .schedule-filter-menu > a, .schedule-utility-menu > a,
    .bslg-tabs > button, .vote-navigation > button, .vote-navigation > a,
    .sms-sidebar nav > a, .leave-sidebar nav > a, .insa-sidebar nav > a,
    .vote-module-sidebar nav > a, .fax-tree-node
) {
    gap: 11px;
    padding: 9px 10px;
    border-radius: 10px;
    color: var(--muted);
    font-size: var(--module-menu-font-size) !important;
    line-height: 1.4;
    text-decoration: none;
}
:is(.app-shell .content, .teams-garam-content) .module-navigation :is(.tree-item, .community-tree-link, .community-tree-home,
    .schedule-filter-menu > button, .schedule-filter-menu > a, .schedule-utility-menu > a,
    .sms-sidebar nav > a, .leave-sidebar nav > a, .insa-sidebar nav > a) > i:first-child {
    width: 18px;
    flex: 0 0 18px;
    text-align: center;
}
:is(.app-shell .content, .teams-garam-content) .module-navigation :is(.leave-sidebar nav > a.sub) { padding-left: 1.65rem; }
:is(.app-shell .content, .teams-garam-content) .module-navigation.hard-sidebar .folder-row {
    padding-left: calc(10px + var(--depth, 0) * .75rem);
}
:is(.app-shell .content, .teams-garam-content) .module-navigation .fax-tree-node > span { font-size: inherit; }
:is(.app-shell .content, .teams-garam-content) .module-navigation .fax-tree-row.selected .fax-tree-node {
    background: transparent;
    color: var(--navigation-selection-foreground);
}
:is(.app-shell .content, .teams-garam-content) .module-navigation :is(.edms-tree-tabs, .hard-tabs, .address-tabs) > button {
    font-size: var(--module-menu-font-size) !important;
}
:is(.app-shell .content, .teams-garam-content) .module-navigation :is(.module-primary-action, .module-sidebar-action) {
    font-size: var(--module-menu-font-size) !important;
}
:is(.app-shell .content, .teams-garam-content) .module-navigation :is(.folder-button, .unread-folder-button,
    .tree-row, .tree-item, .folder-row, .approval-nav-item, .nav-item,
    .notice-category-item, .community-tree-home, .community-tree-link,
    .edms-document-link, .edms-common-actions > a, .edms-common-actions > button,
    .schedule-filter-menu > button, .schedule-filter-menu > a, .schedule-utility-menu > a,
    .bslg-tabs > button, .vote-navigation > button, .vote-navigation > a,
    .sms-sidebar nav > a, .leave-sidebar nav > a, .insa-sidebar nav > a,
    .vote-module-sidebar nav > a, .fax-tree-node):hover:not(.active) {
    background: var(--surface-hover);
    color: var(--text);
}
:is(.app-shell .content, .teams-garam-content) .module-navigation :is(.mail-sidebar-card-copy, .fax-settings-link) strong {
    font-size: var(--module-menu-font-size);
}
:is(.app-shell .content, .teams-garam-content) .module-navigation :is(.community-tree-home, .community-tree-link,
    .edms-document-link, .edms-common-actions > a, .sms-sidebar nav > a,
    .leave-sidebar nav > a, .insa-sidebar nav > a, .vote-navigation > a,
    .vote-module-sidebar nav > a).active {
    background: var(--navigation-selection-background);
    color: var(--navigation-selection-foreground);
    font-weight: 700;
}

/* 소통공간은 트리 행의 펼침 영역과 링크 여백을 분리하여 중복 들여쓰기를 방지합니다. */
:is(.app-shell .content, .teams-garam-content) .community-sidebar.module-navigation > nav {
    padding: 0;
}
:is(.app-shell .content, .teams-garam-content) .community-sidebar.module-navigation > .community-sidebar-write {
    margin-inline: 0;
}
:is(.app-shell .content, .teams-garam-content) .community-sidebar.module-navigation .community-tree-row {
    display: flex;
    align-items: center;
    padding-left: calc(var(--community-tree-level, 0) * 12px);
}
:is(.app-shell .content, .teams-garam-content) .community-sidebar.module-navigation :is(.community-tree-toggle, .community-tree-spacer) {
    width: 24px;
    flex: 0 0 24px;
}
:is(.app-shell .content, .teams-garam-content) .community-sidebar.module-navigation .community-tree-link {
    gap: 8px;
    padding: 9px 6px;
}
:is(.app-shell .content, .teams-garam-content) .community-sidebar.module-navigation .community-tree-home {
    gap: 8px;
    padding: 9px 6px 9px 30px;
}

/* 각 모듈의 기존 중단점은 유지하며 접힌 레일의 가로 여백만 맞춥니다. */
@media (min-width: 901px) {
    :is(.app-shell .content, .teams-garam-content) .sidebar-collapsed .module-navigation,
    :is(.app-shell .content, .teams-garam-content) .module-navigation.collapsed { padding-inline: .75rem !important; }
    :is(.app-shell .content, .teams-garam-content) .module-navigation.collapsed > :is(header, .subnav-brand) {
        justify-content: center !important;
        padding-inline: 0 !important;
    }
    :is(.app-shell .content, .teams-garam-content) .module-navigation.collapsed > :is(header, .subnav-brand) > div { display: none !important; }
}
@media (max-width: 900px) {
    :is(.app-shell .content, .teams-garam-content) .module-navigation.collapsed > :is(header, .subnav-brand) > div { display: block !important; }
}
