.department-page { flex: 1; padding: 20px; background: transparent; } .department-card { min-height: calc(100vh - 122px); padding: 0 20px 28px; border: 1px solid #dde8f7; border-radius: 6px; background: #fff; box-shadow: 0 8px 24px rgba(34, 69, 126, 0.06); } .department-header { height: 56px; display: flex; align-items: center; justify-content: space-between; } .department-header h1 { margin: 0; color: #111827; font-size: 16px; font-weight: 800; } .add-root-dept-button { min-width: 130px; height: 34px; border: 1px solid #3c93e8; border-radius: 4px; color: #fff; background: #3c93e8; font-size: 13px; font-weight: 700; cursor: pointer; } .department-search { width: 232px; height: 24px; display: grid; grid-template-columns: 1fr 28px; margin: 0 0 36px; border: 1px solid #c8d1dc; background: #fff; } .department-search input { min-width: 0; height: 22px; padding: 0 8px; border: 0; outline: 0; color: #1f2d3d; font-size: 12px; } .department-search button { position: relative; border: 0; background: transparent; cursor: pointer; } .department-search button::before { content: ""; position: absolute; left: 6px; top: 4px; width: 11px; height: 11px; border: 1.5px solid #52657a; border-radius: 50%; } .department-search button::after { content: ""; position: absolute; left: 18px; top: 16px; width: 7px; height: 1.5px; background: #52657a; transform: rotate(45deg); transform-origin: left center; } .department-tree-panel { min-height: 560px; border: 1px solid #d8dce2; background: #fff; overflow: auto; } .department-tree { min-width: 1040px; padding: 8px 0 28px; } .department-node { min-height: 38px; } .department-node-content { height: 38px; display: grid; grid-template-columns: 18px 20px 196px 36px 88px 64px 64px; align-items: center; gap: 6px; padding: 0 14px; color: #344658; font-size: 14px; } .department-node.level-1 > .department-node-content { font-weight: 800; } .department-node.level-2 > .department-node-content { margin-left: 38px; } .department-node.level-3 > .department-node-content { margin-left: 76px; } .department-node.level-4 > .department-node-content { margin-left: 114px; } .department-node.level-5 > .department-node-content { margin-left: 152px; } .department-node-content:hover { background: #f6fbff; } .department-node-content.active { color: #1685ff; background: #e5f6ff; } .department-node-content.disabled { color: #8795a5; } .department-toggle { width: 16px; height: 16px; position: relative; border: 0; background: transparent; cursor: pointer; } .department-toggle::before { content: ""; position: absolute; left: 4px; top: 5px; width: 0; height: 0; border-left: 4px solid transparent; border-right: 4px solid transparent; border-top: 6px solid #435363; } .department-node.collapsed > .department-node-content .department-toggle::before { border-top: 4px solid transparent; border-bottom: 4px solid transparent; border-left: 6px solid #435363; border-right: 0; } .department-node.no-children > .department-node-content .department-toggle::before { display: none; } .department-file-icon, .department-folder-icon { width: 14px; height: 14px; position: relative; display: inline-block; color: #52657a; } .department-folder-icon { border: 1.4px solid currentColor; border-radius: 1px; } .department-folder-icon::before { content: ""; position: absolute; left: 1px; top: -5px; width: 7px; height: 5px; border: 1.4px solid currentColor; border-bottom: 0; border-radius: 1px 1px 0 0; } .department-file-icon { border: 1.4px solid currentColor; border-radius: 2px; } .department-file-icon::before { content: ""; position: absolute; right: -1px; top: -1px; width: 5px; height: 5px; border-left: 1.4px solid currentColor; border-bottom: 1.4px solid currentColor; background: #fff; } .department-name { min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; } .department-action { min-width: 0; border: 0; color: #1685ff; background: transparent; font-size: 14px; font-weight: 700; text-align: left; white-space: nowrap; cursor: pointer; } .department-action:disabled { color: #9aaabd; cursor: not-allowed; } .department-disabled-badge { width: 28px; height: 22px; display: inline-flex; align-items: center; justify-content: center; border-radius: 3px; color: #fff; background: #d9dce2; font-size: 12px; font-weight: 800; } .department-status-placeholder { width: 28px; height: 22px; display: inline-block; } .department-children { display: block; } .department-node.collapsed > .department-children { display: none; } .department-empty { padding: 44px; color: #8a9ab0; text-align: center; font-size: 13px; } .department-modal-panel { width: min(1008px, calc(100vw - 96px)); min-height: 682px; border-radius: 6px; } .department-modal-header { height: 62px; } .department-modal-header h3 { font-size: 16px; font-weight: 700; } .department-form { display: grid; gap: 22px; padding: 26px 450px 92px 78px; } .department-row { display: grid; grid-template-columns: 86px 1fr; align-items: center; gap: 12px; color: #111827; font-size: 14px; font-weight: 700; } .department-row > span:first-child { text-align: left; } .department-row.required > span:first-child::before { content: "*"; margin-right: 5px; color: #f15a5a; font-weight: 400; } .department-row input[type="text"], .department-row select { width: 364px; height: 34px; min-width: 0; padding: 0 10px; border: 1px solid #cbd2dc; color: #1f2d3d; background: #fff; outline: 0; font: inherit; } .department-row input[type="text"]:focus, .department-row select:focus { border-color: #2f80ed; box-shadow: 0 0 0 2px rgba(47, 128, 237, 0.08); } .department-status-row { grid-template-columns: 86px 44px; } .department-status-row input { position: absolute; opacity: 0; pointer-events: none; } .department-switch { width: 32px; height: 16px; position: relative; display: inline-block; border-radius: 999px; background: #d8dde8; transition: background-color 0.16s ease; } .department-switch::after { content: ""; position: absolute; left: 2px; top: 2px; width: 12px; height: 12px; border-radius: 50%; background: #fff; box-shadow: 0 1px 3px rgba(0, 0, 0, 0.22); transition: transform 0.16s ease; } .department-status-row input:checked + .department-switch { background: #6b83f6; } .department-status-row input:checked + .department-switch::after { transform: translateX(16px); } .department-modal-actions { position: absolute; left: 0; right: 0; bottom: 24px; display: flex; justify-content: center; } .department-modal-actions .primary-button { width: 154px; height: 36px; border-radius: 4px; font-size: 13px; font-weight: 700; } @media (max-width: 1280px) { .department-form { padding-right: 300px; } }