.orbit-ui.orbit-console { color: var(--text); background: var(--bg); font-size: var(--fs-md); }
.orbit-ui.orbit-console .app { grid-template-columns: 232px minmax(0, 1fr); }
.orbit-ui.orbit-console main { min-width: 0; padding: var(--sp-6); }
.orbit-ui.orbit-console .sidebar { width: auto; min-height: 0; padding: var(--sp-4); background: var(--panel); color: var(--text); border-right: 1px solid var(--line); }
.orbit-ui.orbit-console .sidebar .nav { color: var(--text); padding: var(--sp-2) var(--sp-3); }
.orbit-ui.orbit-console .sidebar .nav.active { color: var(--accent); background: var(--accent-soft); }
.orbit-ui.orbit-console .nav-group-title { color: var(--text); padding: var(--sp-2); }
.orbit-ui.orbit-console .nav-group-title:hover { background: var(--panel-soft); }
.orbit-ui.orbit-console .panel > .section-head:first-child h2 { display: none; }
.orbit-ui.orbit-console .attendance-subnav-buttons { display: none; }
.orbit-ui.orbit-console .console-route-hidden, .orbit-ui.orbit-console .console-load-blocked { display: none; }
.orbit-ui.orbit-console .table-wrap { max-width: 100%; overflow-x: auto; }
.orbit-ui.orbit-console .table-wrap table { min-width: 640px; }
.orbit-ui.orbit-console .orbit-ui-header { margin-bottom: var(--sp-4); }
.orbit-ui.orbit-console #consolePageState { margin-bottom: var(--sp-4); }
.orbit-ui.orbit-console #consolePageState:empty { display: none; }
.orbit-ui.orbit-console .config-form { gap: var(--sp-4); }
@media (max-width: 768px) {
 .orbit-ui.orbit-console .app { grid-template-columns: 1fr; }
 .orbit-ui.orbit-console .sidebar { position: static; height: auto; max-height: 40vh; overflow: auto; }
 .orbit-ui.orbit-console main { padding: var(--sp-4); }
 .orbit-ui.orbit-console .orbit-ui-header { flex-wrap: wrap; gap: var(--sp-3); }
}

.orbit-ui.orbit-console .sidebar nav { display: block; flex: 1; align-content: start; }
.orbit-ui.orbit-console .sidebar .nav-group { margin-top: var(--sp-2); }
.orbit-ui.orbit-console .sidebar .nav:hover { background: var(--panel-soft); color: var(--text); }
.orbit-ui.orbit-console .sidebar .nav.active { background: var(--accent-soft); color: var(--accent); }
.orbit-ui.orbit-console #globalError:empty { display: none; }
.orbit-ui.orbit-console #timePanel > p { margin-bottom: var(--sp-4); }
.orbit-ui.orbit-console .login-view { background: var(--bg); }
.orbit-ui.orbit-console .login-card, .orbit-ui.orbit-console .state-card { color: var(--text); background: var(--panel); border-color: var(--line); }
.orbit-ui.orbit-console input:not([type="checkbox"]):not([type="radio"]), .orbit-ui.orbit-console select, .orbit-ui.orbit-console textarea { color: var(--text); background-color: var(--panel); border-color: var(--line); }
.orbit-ui.orbit-console th { color: var(--muted); background: var(--panel-soft); }
.orbit-ui.orbit-console td { color: var(--text); }
.orbit-ui.orbit-console .notice, .orbit-ui.orbit-console .branding-file-picker { color: var(--text); background: var(--panel-soft); border-color: var(--line); }
.orbit-ui.orbit-console #settingsPanel .section-head h2 { display: none; }
.orbit-ui.orbit-console .panel { min-width: 0; }
@media (max-width: 768px) {
 .orbit-ui.orbit-console .orgpos-layout, .orbit-ui.orbit-console .config-form { grid-template-columns: minmax(0, 1fr); }
 .orbit-ui.orbit-console .section-head { flex-wrap: wrap; gap: var(--sp-3); }
 .orbit-ui.orbit-console .section-head-actions { flex-wrap: wrap; }
}
.orbit-ui.orbit-console .console-row-hidden { display: none; }
.orbit-ui.orbit-console .sidebar .nav { border: 0; }
.orbit-ui.orbit-console .sidebar .nav.active { color: var(--text); box-shadow: none; }
.orbit-ui.orbit-console .orbit-ui-toolbar { margin-bottom: var(--sp-4); }
.orbit-ui.orbit-console #accountsPanel[data-console-mode="authorization"] #addAccountButton,
.orbit-ui.orbit-console #accountsPanel[data-console-mode="authorization"] [data-change-login],
.orbit-ui.orbit-console #accountsPanel[data-console-mode="authorization"] [data-reset-password],
.orbit-ui.orbit-console #accountsPanel[data-console-mode="authorization"] [data-disable-account],
.orbit-ui.orbit-console #accountsPanel[data-console-mode="authorization"] [data-issue-activation],
.orbit-ui.orbit-console #accountsPanel[data-console-mode="authorization"] [title="不能停用当前登录的账号"],
.orbit-ui.orbit-console #accountsPanel[data-console-mode="accounts"] [data-perm],
.orbit-ui.orbit-console #accountsPanel[data-console-mode="accounts"] [data-edit-roles] { display: none; }
.orbit-ui.orbit-console .console-grid-two { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: var(--sp-3); }
.orbit-ui.orbit-console .console-grid-three { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: var(--sp-3); }
.orbit-ui.orbit-console .console-location-form { max-width: 640px; }
.orbit-ui.orbit-console .console-employee-head { display: flex; justify-content: space-between; align-items: center; margin-bottom: var(--sp-1); }
.orbit-ui.orbit-console .console-employee-label { margin: 0; font-weight: 500; }
.orbit-ui.orbit-console .console-employee-tools { display: flex; gap: var(--sp-2); font-size: var(--fs-sm); }
.orbit-ui.orbit-console .console-small-action { padding: var(--sp-1) var(--sp-2); font-size: var(--fs-sm); }
.orbit-ui.orbit-console .console-employee-search { margin-bottom: var(--sp-2); font-size: var(--fs-base); }
.orbit-ui.orbit-console .console-employee-list { max-height: 180px; overflow-y: auto; border: 1px solid var(--line); border-radius: var(--radius-xs); padding: var(--sp-2); display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: var(--sp-2); background: var(--panel-soft); }
.orbit-ui.orbit-console .console-note { margin-top: var(--sp-1); font-size: var(--fs-sm); }
.orbit-ui.orbit-console .console-row-actions { white-space: nowrap; }
.orbit-ui.orbit-console .console-row-actions > button + button { margin-left: var(--sp-2); }
.orbit-ui.orbit-console .console-grid-empty { grid-column: 1 / -1; padding: var(--sp-1); }
.orbit-ui.orbit-console .console-employee-option { display: flex; align-items: center; gap: var(--sp-2); font-size: var(--fs-base); cursor: pointer; margin: 0; padding: var(--sp-1); border-radius: var(--radius-xs); background: var(--panel); border: 1px solid var(--line); }
.orbit-ui.orbit-console .console-rule-help { margin-top: var(--sp-2); font-size: var(--fs-base); }
.orbit-ui.orbit-console .console-survey-trend { width: 100%; height: 8px; accent-color: var(--accent); }
@media (max-width: 768px) {
 .orbit-ui.orbit-console .console-grid-two, .orbit-ui.orbit-console .console-grid-three, .orbit-ui.orbit-console .console-employee-list { grid-template-columns: minmax(0,1fr); }
 .orbit-ui.orbit-console .console-employee-head { flex-wrap: wrap; }
}
.orbit-ui.orbit-console .sidebar { transform: none; max-width: none; min-width: 0; inset: auto; box-shadow: none; }
.orbit-ui.orbit-console .nav-group.branch-active > .nav-group-title { color: var(--text); }
.orbit-ui.orbit-console .environment, .orbit-ui.orbit-console .sidebar-footer { color: var(--muted); }
.orbit-ui.orbit-console .sidebar-footer button { color: var(--text); background: var(--panel); border-color: var(--line); }
.orbit-ui.orbit-console .console-mobile-nav { display: none; }
@media (max-width: 768px) {
 .orbit-ui.orbit-console .sidebar { display: grid; grid-template-columns: minmax(0,1fr) auto; gap: var(--sp-3); max-height: none; }
 .orbit-ui.orbit-console .sidebar-logo { width: 120px; margin: 0; }
 .orbit-ui.orbit-console .environment, .orbit-ui.orbit-console .sidebar nav, .orbit-ui.orbit-console .sidebar-footer > span { display: none; }
 .orbit-ui.orbit-console .sidebar-footer { grid-column: 2; grid-row: 1; margin: 0; }
 .orbit-ui.orbit-console .console-mobile-nav { display: block; grid-column: 1 / -1; }
 .orbit-ui.orbit-console .console-mobile-nav select { width: 100%; min-height: 44px; }
}
@media (max-width: 768px) {
 .orbit-ui.orbit-console .app { grid-template-rows: auto minmax(0,1fr); align-content: start; }
 .orbit-ui.orbit-console .sidebar { align-self: start; align-content: start; grid-auto-rows: max-content; }
 .orbit-ui.orbit-console .sidebar-footer { align-self: center; }
}

/* Console route containers are layout slots, not employee-dashboard panel cards. */
.orbit-ui.orbit-console .panel { padding: 0; margin: 0; border: 0; border-radius: 0; background: transparent; box-shadow: none; overflow: visible; }
.orbit-ui.orbit-console .sidebar .nav-group-items::before { display: none; }
.orbit-ui.orbit-console .sidebar .nav.active { font-weight: 500; }
.orbit-ui.orbit-console :is(.config-form,.model-policy-form,.kpi,.table-wrap,.session-item,.tree-node,.orgpos-rail,.survey-question,.survey-section,.perm-preview,.reassign-holders) { color: var(--text); background: var(--panel); border-color: var(--line); }
.orbit-ui.orbit-console .config-form { min-width: 0; grid-template-columns: repeat(2,minmax(0,1fr)); padding: var(--sp-6); border-radius: var(--radius-sm); }
.orbit-ui.orbit-console .config-form + .config-form { margin-top: var(--sp-4); }
/* .wide in the employee shell fixes a control to 280px; Admin uses it as a grid span. */
.orbit-ui.orbit-console .config-form .wide { width: auto; min-width: 0; max-width: none; grid-column: 1 / -1; }
.orbit-ui.orbit-console .config-form .form-actions { margin-top: var(--sp-2); flex-wrap: wrap; }
.orbit-ui.orbit-console :is(.config-form,.dialog-form,.model-policy-form,.survey-form,.survey-data) label { color: var(--text); min-width: 0; }
.orbit-ui.orbit-console :is(.muted,.section-head p,.session-item p,.notice p,.tree-node small,.ai-master-label,.perm-section-title,.orgpos-rail-title,.orgpos-rail-note,.orgpos-node-count,.orgpos-members,.orgpos-node-meta,.survey-editor-head p) { color: var(--muted); }
.orbit-ui.orbit-console :is(.ai-fold-title,.orgpos-holders,.perm-admin-row .inline-check) { color: var(--text); }
.orbit-ui.orbit-console :is(header,.section-head,.session-item,.state-card,.form-actions,td,.survey-question-actions,.option-row,.survey-section-head,.orgpos-rail-head) button:not(.primary):not(.danger-small):not(.primary-small) { color: var(--text); background: var(--panel); border-color: var(--line); }
.orbit-ui.orbit-console :is(.tree-toggle,.btn-toggle-shift,.survey-add-row button,.branding-file-button) { color: var(--text); background: var(--panel); border-color: var(--line); }
.orbit-ui.orbit-console :is(.tree-toggle,.btn-toggle-shift,.orgpos-group-main,.orgpos-node,.orgpos-group-chevron):hover { color: var(--text); background: var(--hover-bg); }
.orbit-ui.orbit-console :is(.orgpos-group-main.active,.orgpos-node.active,.reassign-list button.selected) { color: var(--text); background: var(--accent-soft); }
.orbit-ui.orbit-console .badge { color: var(--text); background: var(--panel-soft); }
.orbit-ui.orbit-console :is(.badge.active,.badge.succeeded,.success-row) { color: var(--ok-text); background: var(--ok-bg); }
.orbit-ui.orbit-console :is(.badge.locked,.badge.denied,.badge.failed,.badge.disabled,.badge.inactive,.danger-small) { color: var(--bad-text); background: var(--bad-bg); border-color: var(--bad-text); }
.orbit-ui.orbit-console :is(.badge.draft,.badge.pending_activation,.scope-warning,.orgpos-note,.orgpos-node-unmatched.active) { color: var(--warn-text); background: var(--warn-bg); border-color: var(--warn-text); }
.orbit-ui.orbit-console :is(.badge.lock-expired,.orgpos-note.bridged) { color: var(--info-text); background: var(--info-bg); border-color: var(--info-text); }
.orbit-ui.orbit-console :is(.perm-op,.grant-tag,.node-level,.node-count,.trend-bar) { color: var(--text); background: var(--panel-soft); border-color: var(--line); }
.orbit-ui.orbit-console .table-wrap table { border: 0; box-shadow: none; border-radius: 0; }
.orbit-ui.orbit-console dialog { color: var(--text); background: var(--panel); }
.orbit-ui.orbit-console .brand-logo-preview { background: var(--on-inverse); border-radius: var(--radius-xs); padding: var(--sp-2); }
@media (max-width: 768px) {
 .orbit-ui.orbit-console .config-form { grid-template-columns: minmax(0,1fr); padding: var(--sp-4); }
}

.orbit-ui.orbit-console input::placeholder, .orbit-ui.orbit-console textarea::placeholder { color: var(--muted); opacity: 1; }

/* Standalone Admin uses document scrolling, unlike the employee .main-content shell. */
body.orbit-ui.orbit-console { height: auto; max-height: none; min-height: 100dvh; overflow-x: clip; overflow-y: auto; }
.orbit-ui.orbit-console main { height: auto; max-height: none; overflow: visible; }
.orbit-ui.orbit-console :is(.notice,.scope-warning,.orgpos-note) { border: 1px solid var(--line); }
.orbit-ui.orbit-console .perm-op-mode { border-left: 0; border-inline-start: 0; }
.orbit-ui.orbit-console .orgpos-group-items::before { display: none; }
.orbit-ui.orbit-console :is(.orgpos-group-main,.orgpos-node) { color: var(--text); }
.orbit-ui.orbit-console :is(.orgpos-node.branch-active,.orgpos-group-main.branch-active) { color: var(--text); }
.orbit-ui.orbit-console .orgpos-node-unmatched { color: var(--warn-text); }
.orbit-ui.orbit-console dialog > .dialog-form { max-height: calc(100dvh - var(--sp-8)); overscroll-behavior: contain; scrollbar-gutter: stable; }
.orbit-ui.orbit-console .login-view { min-height: 100dvh; height: auto; padding: var(--sp-6); }
.orbit-ui.orbit-console .login-card { min-width: 0; padding: var(--sp-7); }
.orbit-ui.orbit-console .login-card label { color: var(--text); }
.orbit-ui.orbit-console :is(.product-kicker,.security-note) { color: var(--muted); }
.orbit-ui.orbit-console .login-card .brand-logo { object-fit: contain; background: var(--on-inverse); padding: var(--sp-2); border-radius: var(--radius-xs); }
.orbit-ui.orbit-console .password-field { min-width: 0; grid-template-columns: minmax(0,1fr) 48px; }
.orbit-ui.orbit-console .login-card input { min-width: 0; }
.orbit-ui.orbit-console .password-toggle { color: var(--text); background: var(--panel); border-color: var(--line); }
.orbit-ui.orbit-console .error { color: var(--bad-text); }
@media (max-width: 768px) {
 .orbit-ui.orbit-console .login-view { padding: var(--sp-4); }
 .orbit-ui.orbit-console .login-card { padding: var(--sp-5); }
}

.orbit-ui.orbit-console :is(.orgpos-node.active,.orgpos-group-main.branch-active,.orgpos-node.branch-active) .orgpos-node-count { color: inherit; opacity: 1; }

@media (min-width: 769px) {
 .orbit-ui.orbit-console .sidebar { position: sticky; top: 0; height: 100dvh; align-self: start; }
}
