#school-org-hierarchy {
        --ink: #152438;
        --ink-soft: #4B5A70;
        --line: #E3E7EC;
        --line-soft: #EEF1F4;
        --bg: #F5F7FA;
        --surface: #FFFFFF;
        --navy: #1E3A5F;
        --gold: #B8862B;
        --gold-soft: #FBF3E3;
        --teal: #2F7D6B;
        --teal-soft: #E7F3F0;
        --radius: 10px;
        color: var(--ink);
        background: var(--bg);
        margin: 0 -8px;
        padding: 20px 16px 40px;
        font-size: 14.5px;
    }
    #school-org-hierarchy .soh-shell { max-width: 1180px; margin: 0 auto; }
    #school-org-hierarchy .soh-header {
        display: flex;
        align-items: flex-start;
        justify-content: space-between;
        gap: 16px;
        margin-bottom: 18px;
        flex-wrap: wrap;
    }
    #school-org-hierarchy .soh-header h1 {
        font-size: 22px;
        font-weight: 600;
        margin: 0 0 4px;
        letter-spacing: -0.01em;
        color: var(--ink);
    }
    #school-org-hierarchy .soh-header p { color: var(--ink-soft); margin: 0; font-size: 14px; }
    #school-org-hierarchy .soh-session label {
        display: block;
        font-size: 11px;
        font-weight: 600;
        letter-spacing: .04em;
        text-transform: uppercase;
        color: var(--ink-soft);
        margin-bottom: 6px;
    }
    #school-org-hierarchy .soh-session select {
        min-width: 240px;
        height: 36px;
        border: 1px solid var(--line);
        border-radius: 8px;
        background: var(--surface);
        color: var(--ink);
        font-size: 13.5px;
        padding: 0 10px;
    }
    #school-org-hierarchy .soh-tabs {
        display: flex;
        gap: 4px;
        background: var(--line-soft);
        padding: 4px;
        border-radius: 10px;
        width: fit-content;
        margin-bottom: 16px;
    }
    #school-org-hierarchy .soh-tab {
        border: none;
        background: transparent;
        padding: 8px 18px;
        border-radius: 8px;
        font-size: 13.5px;
        font-weight: 500;
        color: var(--ink-soft);
        cursor: pointer;
        display: flex;
        align-items: center;
        gap: 8px;
    }
    #school-org-hierarchy .soh-tab.active {
        background: var(--surface);
        color: var(--navy);
        box-shadow: 0 1px 2px rgba(21, 36, 56, .08);
    }
    #school-org-hierarchy .soh-crumb {
        display: flex;
        align-items: center;
        gap: 6px;
        font-size: 13px;
        color: var(--ink-soft);
        margin-bottom: 16px;
    }
    #school-org-hierarchy .soh-crumb .current { color: var(--ink); font-weight: 500; }
    #school-org-hierarchy .soh-crumb i { font-size: 10px; color: #B7C0CC; }
    #school-org-hierarchy .soh-summary {
        display: grid;
        grid-template-columns: repeat(3, 1fr);
        gap: 14px;
        margin-bottom: 18px;
    }
    #school-org-hierarchy .soh-card {
        background: var(--surface);
        border: 1px solid var(--line);
        border-radius: var(--radius);
        padding: 16px 18px;
    }
    #school-org-hierarchy .soh-card .label { font-size: 12.5px; color: var(--ink-soft); margin-bottom: 6px; }
    #school-org-hierarchy .soh-card .value { font-size: 24px; font-weight: 600; color: var(--ink); }
    #school-org-hierarchy .soh-card .value small {
        font-size: 13px;
        font-weight: 500;
        color: var(--teal);
        margin-left: 6px;
    }
    #school-org-hierarchy .soh-toolbar {
        display: flex;
        align-items: center;
        justify-content: space-between;
        margin-bottom: 14px;
        gap: 12px;
        flex-wrap: wrap;
    }
    #school-org-hierarchy .soh-search { position: relative; width: 280px; max-width: 100%; }
    #school-org-hierarchy .soh-search i {
        position: absolute;
        left: 12px;
        top: 50%;
        transform: translateY(-50%);
        color: #9AA5B1;
        font-size: 13px;
    }
    #school-org-hierarchy .soh-search input {
        width: 100%;
        padding: 8px 12px 8px 32px;
        border: 1px solid var(--line);
        border-radius: 8px;
        font-size: 13.5px;
        background: var(--surface);
    }
    #school-org-hierarchy .soh-search input:focus {
        outline: none;
        border-color: var(--navy);
        box-shadow: 0 0 0 3px rgba(30, 58, 95, .10);
    }
    #school-org-hierarchy .soh-chk {
        display: flex;
        align-items: center;
        gap: 6px;
        font-size: 13px;
        color: var(--ink-soft);
        margin: 0;
        font-weight: 400;
    }
    #school-org-hierarchy .soh-panel {
        background: var(--surface);
        border: 1px solid var(--line);
        border-radius: var(--radius);
        overflow: hidden;
    }
    #school-org-hierarchy .soh-root {
        display: flex;
        align-items: center;
        gap: 10px;
        padding: 14px 18px;
        border-bottom: 1px solid var(--line);
        font-weight: 600;
        font-size: 14.5px;
        background: var(--navy);
        color: #fff;
    }
    #school-org-hierarchy .soh-root i { color: #9FB6D4; }
    #school-org-hierarchy .soh-root .soh-pill {
        margin-left: auto;
        background: rgba(255, 255, 255, .14);
        color: #fff;
        font-weight: 500;
        padding: 3px 10px;
        border-radius: 20px;
        font-size: 12.5px;
    }
    #school-org-hierarchy .soh-row {
        display: flex;
        align-items: center;
        padding: 13px 18px;
        border-bottom: 1px solid var(--line-soft);
        cursor: pointer;
    }
    #school-org-hierarchy .soh-row:hover { background: #FAFBFC; }
    #school-org-hierarchy .soh-row.open .soh-caret { transform: rotate(90deg); color: var(--navy); }
    #school-org-hierarchy .soh-caret {
        width: 16px;
        color: #AEB7C2;
        font-size: 11px;
        margin-right: 10px;
        transition: transform .15s;
    }
    #school-org-hierarchy .soh-icon {
        width: 32px;
        height: 32px;
        border-radius: 8px;
        display: flex;
        align-items: center;
        justify-content: center;
        background: var(--teal-soft);
        color: var(--teal);
        margin-right: 12px;
        font-size: 13.5px;
        flex-shrink: 0;
    }
    #school-org-hierarchy .soh-icon.gold { background: var(--gold-soft); color: var(--gold); }
    #school-org-hierarchy .soh-text { flex: 1; min-width: 0; }
    #school-org-hierarchy .soh-title { font-weight: 500; color: var(--ink); font-size: 14px; }
    #school-org-hierarchy .soh-sub { font-size: 12px; color: var(--ink-soft); margin-top: 1px; }
    #school-org-hierarchy .soh-badge {
        background: var(--gold-soft);
        color: var(--gold);
        font-weight: 600;
        font-size: 12.5px;
        padding: 4px 11px;
        border-radius: 20px;
        margin-left: 12px;
        white-space: nowrap;
    }
    #school-org-hierarchy .soh-badge.zero { background: var(--line-soft); color: #9AA5B1; }
    #school-org-hierarchy .soh-child { display: none; background: #FBFCFD; }
    #school-org-hierarchy .soh-child.show { display: block; }
    #school-org-hierarchy .soh-child .soh-row { padding-left: 46px; }
    #school-org-hierarchy .soh-child .soh-child .soh-row { padding-left: 74px; }
    #school-org-hierarchy .soh-leaf { padding: 6px 18px 16px; background: #FBFCFD; }
    #school-org-hierarchy .soh-leaf table { width: 100%; border-collapse: collapse; }
    #school-org-hierarchy .soh-leaf thead th {
        text-align: left;
        font-size: 11.5px;
        text-transform: uppercase;
        letter-spacing: .04em;
        color: #9AA5B1;
        font-weight: 600;
        padding: 8px 10px;
        border-bottom: 1px solid var(--line);
    }
    #school-org-hierarchy .soh-leaf tbody td {
        padding: 9px 10px;
        border-bottom: 1px solid var(--line-soft);
        font-size: 13.5px;
    }
    #school-org-hierarchy .soh-leaf tbody tr { cursor: pointer; }
    #school-org-hierarchy .soh-leaf tbody tr:hover { background: #F2F5F8; }
    #school-org-hierarchy .soh-leaf tbody tr:last-child td { border-bottom: none; }
    #school-org-hierarchy .soh-person { display: flex; align-items: center; gap: 10px; }
    #school-org-hierarchy .soh-person-name {
        color: var(--navy);
        font-weight: 600;
        text-decoration: none;
        cursor: pointer;
    }
    #school-org-hierarchy .soh-person-name:hover { text-decoration: underline; }
    #school-org-hierarchy .soh-avatar {
        width: 28px;
        height: 28px;
        border-radius: 50%;
        background: var(--navy);
        color: #fff;
        display: flex;
        align-items: center;
        justify-content: center;
        font-size: 11.5px;
        font-weight: 600;
        flex-shrink: 0;
        cursor: pointer;
    }
    #school-org-hierarchy .soh-status {
        font-size: 11.5px;
        padding: 2px 9px;
        border-radius: 20px;
        font-weight: 500;
    }
    #school-org-hierarchy .soh-status.active { background: var(--teal-soft); color: var(--teal); }
    #school-org-hierarchy .soh-status.inactive { background: #FBEAEA; color: #B3453D; }
    #school-org-hierarchy .soh-code { color: var(--ink-soft); font-family: ui-monospace, monospace; font-size: 12.5px; }
    #school-org-hierarchy .soh-empty {
        padding: 26px 18px;
        text-align: center;
        color: #9AA5B1;
        font-size: 13px;
    }
    #school-org-hierarchy .soh-empty i { display: block; font-size: 20px; margin-bottom: 8px; color: #C3CAD3; }
    #school-org-hierarchy .soh-hidden { display: none !important; }
    @media (max-width: 900px) {
        #school-org-hierarchy .soh-summary { grid-template-columns: 1fr; }
        #school-org-hierarchy .soh-search { width: 100%; }
        #school-org-hierarchy .soh-child .soh-row,
        #school-org-hierarchy .soh-child .soh-child .soh-row { padding-left: 18px; }
    }
