:root{color-scheme:light;font-family:Inter,Noto Sans SC,Microsoft YaHei,sans-serif;font-synthesis:none;text-rendering:optimizeLegibility;--shell-bg: #e7eaed;--shell-active: #d7dce1;--shell-text: #5c6772;--shell-text-strong: #1f2831;--shell-text-muted: #77828d;--shell-line: rgba(31, 40, 49, .09);--shell-hover: rgba(31, 40, 49, .055);--shell-control: rgba(255, 255, 255, .58);--shell-control-hover: rgba(255, 255, 255, .9);--shell-control-border: rgba(31, 40, 49, .11);--ink: var(--shell-bg);--ink-3: var(--shell-active);--canvas: #ffffff;--panel: #ffffff;--panel-soft: #fafbfc;--panel-muted: #f1f4f6;--line: #dfe5ea;--line-soft: #edf0f2;--card-border: rgba(27, 39, 51, .075);--card-divider: rgba(27, 39, 51, .032);--card-shadow: 0 1px 2px rgba(24, 35, 46, .035), 0 10px 28px rgba(24, 35, 46, .045);--card-shadow-hover: 0 2px 4px rgba(24, 35, 46, .04), 0 16px 34px rgba(24, 35, 46, .07);--muted: #697784;--text: #17212b;--text-strong: #17212b;--text-soft: #697784;--accent: #303942;--accent-rgb: 48 57 66;--accent-contrast: #ffffff;--blue: var(--accent);--blue-soft: color-mix(in srgb, var(--accent) 11%, var(--panel));--green: #198f68;--green-soft: #e7f5ef;--amber: #ba6b14;--amber-soft: #fff2dd;--red: #c34444;--shadow: 0 18px 55px rgba(14, 28, 43, .17)}*{box-sizing:border-box}html,body,#root{width:100%;min-width:320px;min-height:100%}body{margin:0;overflow:hidden;color:var(--text);background:var(--ink);font-size:14px;-webkit-font-smoothing:antialiased}button,input,select,textarea{font:inherit}button{cursor:pointer}button:disabled{cursor:not-allowed;opacity:.5}svg{flex:0 0 auto}code{font-family:SFMono-Regular,Consolas,monospace}.app-shell{width:100vw;height:100dvh;min-height:720px;display:grid;grid-template-columns:200px minmax(0,1fr);grid-template-rows:44px minmax(0,1fr);overflow:hidden;background:var(--ink);transition:grid-template-columns .2s ease}.app-shell.nav-collapsed{grid-template-columns:68px minmax(0,1fr)}.sidebar{grid-column:1;grid-row:2;min-height:0;display:flex;flex-direction:column;padding:12px 14px 14px;color:var(--shell-text);background:var(--ink);transition:padding .2s ease}.brand{width:172px;height:44px;flex:0 0 172px;display:flex;align-items:center;gap:8px;padding:0 8px;transition:width .2s ease,flex-basis .2s ease,padding .2s ease}.brand-mark{width:28px;height:28px;display:grid;place-items:center;border-radius:8px;color:var(--accent-contrast);background:var(--blue);box-shadow:0 5px 14px rgba(var(--accent-rgb) / .26)}.brand-mark svg{width:15px;height:15px;stroke-width:2.2}.brand-copy{min-width:0}.brand-name{color:var(--shell-text-strong);font-size:13px;font-weight:760;letter-spacing:0;white-space:nowrap}.brand-sub{margin-top:1px;color:var(--shell-text-muted);font-size:7px;letter-spacing:.06em;text-transform:uppercase;white-space:nowrap}.nav-collapse{position:relative;width:100%;height:36px;display:flex;align-items:center;gap:9px;margin:8px 0 0;padding:0 11px;border:1px solid var(--shell-control-border);border-radius:9px;color:var(--shell-text);background:var(--shell-control);text-align:left;transition:color .16s ease,background .16s ease,padding .2s ease}.nav-collapse:hover{color:var(--shell-text-strong);background:var(--shell-control-hover)}.nav-collapse svg{width:16px;height:16px}.nav-collapse span{font-size:10px;font-weight:650}.nav-group{margin-top:8px}.nav-caption{padding:0 12px 8px;color:var(--shell-text-muted);font-size:10px;font-weight:700;letter-spacing:.09em}.nav-section+.nav-section{margin-top:9px}.nav-parent{width:100%;height:34px;display:flex;align-items:center;gap:9px;padding:0 10px;border:0;border-radius:8px;color:var(--shell-text-muted);background:transparent;text-align:left;font-size:10px;font-weight:720;transition:color .16s ease,background .16s ease}.nav-parent:hover{color:var(--shell-text-strong);background:var(--shell-hover)}.nav-parent>svg:first-child{width:15px;height:15px}.nav-parent>span{flex:1}.nav-parent-chevron{width:12px!important;height:12px!important;color:var(--shell-text-muted);transition:transform .18s ease}.nav-section.expanded .nav-parent-chevron{transform:rotate(180deg)}.nav-section.has-active .nav-parent{color:var(--shell-text-strong)}.nav-section.has-active .nav-parent>svg:first-child{color:var(--blue)}.nav-children{display:grid;grid-template-rows:0fr;opacity:.45;overflow:hidden;transition:grid-template-rows .2s ease,opacity .18s ease}.nav-section.expanded .nav-children{grid-template-rows:1fr;opacity:1}.nav-children-inner{position:relative;min-height:0;padding:3px 0 2px 9px}.nav-section:not(.expanded) .nav-children-inner{padding-top:0;padding-bottom:0}.nav-children-inner:before{content:"";position:absolute;left:13px;top:7px;bottom:7px;width:1px;background:var(--shell-line)}.nav-subitem-rail{width:4px;height:4px;flex:0 0 auto;border-radius:50%;background:transparent;transition:background .16s ease,box-shadow .16s ease}.nav-subitem.active{color:var(--shell-text-strong);background:color-mix(in srgb,var(--blue) 10%,transparent);box-shadow:none;font-weight:700}.nav-subitem.active>svg{color:var(--blue)}.nav-subitem.active .nav-subitem-rail{background:var(--blue);box-shadow:0 0 0 3px rgba(var(--accent-rgb) / .12)}.nav-subitem .nav-badge{height:18px;min-width:18px;padding-inline:5px;font-size:9px}.nav-item{position:relative;width:100%;height:42px;display:flex;align-items:center;gap:11px;margin:2px 0;padding:0 12px;border:0;border-radius:9px;color:var(--shell-text);background:transparent;text-align:left;transition:.18s ease}.nav-item svg{width:17px;height:17px;stroke-width:1.9}.nav-item:hover{color:var(--shell-text-strong);background:var(--shell-hover)}.nav-item.active{color:var(--shell-text-strong);background:var(--ink-3);box-shadow:inset 3px 0 var(--blue)}.nav-item.active svg{color:var(--blue)}.nav-badge{min-width:20px;height:20px;display:grid;place-items:center;margin-left:auto;padding:0 6px;border-radius:999px;color:color-mix(in srgb,var(--blue) 68%,white);background:rgba(var(--accent-rgb) / .2);font-size:10px}.nav-item.nav-subitem{height:36px;margin:1px 0;padding:0 9px 0 15px;gap:8px;border-radius:8px;font-size:10px}.nav-item.nav-subitem>svg{width:14px;height:14px}.nav-item.nav-subitem.active{background:color-mix(in srgb,var(--blue) 10%,transparent);box-shadow:none}.sidebar-spacer{flex:1;min-height:18px}.security-note{margin:12px 2px;padding:12px;border:1px solid var(--shell-line);border-radius:10px;background:var(--shell-control)}.security-title{display:flex;align-items:center;gap:7px;color:var(--shell-text-strong);font-size:11px;font-weight:680}.security-title svg{width:14px;height:14px;color:#55cba0}.security-copy{margin-top:7px;color:var(--shell-text-muted);font-size:9px;line-height:1.55}.account{display:flex;align-items:center;gap:10px;padding:11px 9px 3px;border-top:1px solid var(--shell-line)}.account-name{color:var(--shell-text-strong);font-size:11px;font-weight:680}.account-role{margin-top:2px;color:var(--shell-text-muted);font-size:9px}.account-more{width:15px!important;height:15px!important;margin-left:auto;color:var(--shell-text-muted)}.account-logout{width:26px;height:26px;display:grid;place-items:center;margin-left:auto;border-radius:7px;color:var(--shell-text-muted);background:transparent}.account-logout:hover{color:var(--shell-text-strong);background:#7f8e9c1f}.account-logout svg{width:14px;height:14px}.avatar{width:34px;height:34px;flex:0 0 auto;display:grid;place-items:center;border-radius:50%;color:#fff;font-size:11px;font-weight:740}.avatar-small{width:31px;height:31px;font-size:10px}.sidebar.collapsed{padding-inline:10px}.sidebar.collapsed .nav-caption,.sidebar.collapsed .security-note,.sidebar.collapsed .account>div,.sidebar.collapsed .account-more{display:none}.sidebar.collapsed .nav-group{margin-top:0}.sidebar.collapsed .nav-parent{display:none}.sidebar.collapsed .nav-section+.nav-section{margin-top:6px}.sidebar.collapsed .nav-children{grid-template-rows:1fr;opacity:1;overflow:visible}.sidebar.collapsed .nav-children-inner{padding:0}.sidebar.collapsed .nav-children-inner:before{display:none}.sidebar.collapsed .nav-subitem{justify-content:center;padding:0}.sidebar.collapsed .nav-subitem-rail{display:none}.sidebar.collapsed .nav-item{justify-content:center;padding:0}.sidebar.collapsed .nav-item .nav-label{display:none}.sidebar.collapsed .nav-badge{position:absolute;margin:-24px 0 0 23px}.sidebar.collapsed .nav-collapse{justify-content:center;padding:0}.sidebar.collapsed .nav-collapse span{display:none}.sidebar.collapsed .account{justify-content:center;padding-inline:0}.sidebar.collapsed .nav-item:after,.sidebar.collapsed .nav-collapse:after{content:attr(data-tooltip);position:absolute;z-index:50;left:calc(100% + 12px);top:50%;padding:7px 9px;border:1px solid var(--line);border-radius:7px;color:var(--text-strong);background:var(--panel);box-shadow:0 8px 24px #18202829;font-size:10px;line-height:1;white-space:nowrap;opacity:0;pointer-events:none;transform:translate(4px,-50%);transition:opacity .14s ease,transform .14s ease}.sidebar.collapsed .nav-item:hover:after,.sidebar.collapsed .nav-item:focus-visible:after,.sidebar.collapsed .nav-collapse:hover:after,.sidebar.collapsed .nav-collapse:focus-visible:after{opacity:1;transform:translateY(-50%)}.app-shell.nav-collapsed .brand{width:58px;flex-basis:58px;padding:0}.app-shell.nav-collapsed .brand-copy{display:none}.app-shell.nav-collapsed .topbar{padding-left:12px}.topbar{grid-column:1 / 3;grid-row:1;min-width:0;display:flex;align-items:center;gap:10px;padding:0 10px 0 6px;color:var(--shell-text);background:var(--ink)}.crumbs{min-width:170px;display:flex;align-items:center;gap:7px;color:var(--shell-text-strong);font-size:10px;white-space:nowrap}.crumbs span{color:var(--shell-text-muted)}.crumbs svg{width:13px;height:13px;color:var(--shell-text-muted)}.top-search{width:min(280px,29vw);height:26px;display:flex;align-items:center;gap:7px;margin-left:auto;padding:0 8px;color:var(--shell-text-muted);border:1px solid var(--shell-control-border);border-radius:7px;background:var(--shell-control)}.top-search svg{width:13px;height:13px}.top-search input{flex:1;min-width:0;border:0;outline:0;color:var(--shell-text-strong);background:transparent;font-size:10px}.top-search input::placeholder{color:var(--shell-text-muted)}.kbd{padding:1px 5px;border:1px solid var(--shell-control-border);border-radius:5px;color:var(--shell-text-muted);font-size:8px;white-space:nowrap}.icon-button{width:28px;height:28px;display:grid;place-items:center;border:1px solid var(--shell-control-border);border-radius:8px;color:var(--shell-text);background:var(--shell-control)}.icon-button:hover{color:var(--shell-text-strong);background:var(--shell-control-hover)}.icon-button.is-active{color:var(--shell-text-strong);border-color:rgba(var(--accent-rgb) / .52);background:rgba(var(--accent-rgb) / .14)}.icon-button svg{width:14px;height:14px}.icon-button.has-dot{position:relative}.icon-button.has-dot:after{content:"";position:absolute;top:5px;right:5px;width:5px;height:5px;border:2px solid var(--ink);border-radius:50%;background:#e06263}.top-profile{display:flex;align-items:center;gap:6px;padding-left:11px;border-left:1px solid var(--shell-line)}.top-profile .avatar{width:26px;height:26px;background:var(--blue)}.top-profile>svg{width:13px;height:13px;color:var(--shell-text-muted)}.notification-wrap{position:relative}.notification-panel{position:absolute;z-index:30;top:32px;right:0;width:310px;padding:8px;border:1px solid #dfe5ea;border-radius:12px;color:var(--ink);background:#fff;box-shadow:var(--shadow);animation:pop .16s ease-out}.notification-title{padding:9px 10px 7px;color:#6e7b88;font-size:10px;font-weight:760;letter-spacing:.08em}.notification-item{display:flex;gap:10px;padding:10px;border-top:1px solid #eef1f3}.notification-item strong{font-size:11px}.notification-item p{margin:3px 0 0;color:#808b95;font-size:9px}.notice-dot{width:8px;height:8px;flex:0 0 auto;margin-top:3px;border-radius:50%}.notice-dot.amber{background:var(--amber)}.notice-dot.green{background:var(--green)}.notification-panel>button{width:100%;height:32px;border:0;border-radius:7px;color:#4f5f6c;background:#f1f4f6;font-size:10px;font-weight:680}.theme-wrap{position:relative}.theme-panel{position:absolute;z-index:31;top:32px;right:0;width:304px;padding:9px;border:1px solid var(--line);border-radius:12px;color:var(--text);background:var(--panel);box-shadow:var(--shadow);animation:pop .16s ease-out}.theme-panel-head{display:flex;align-items:flex-start;justify-content:space-between;padding:9px 10px 11px}.theme-panel-head strong{display:block;color:var(--text-strong);font-size:12px}.theme-panel-head span{display:block;margin-top:4px;color:var(--text-soft);font-size:9px}.theme-panel-head>svg{width:16px;height:16px;color:var(--blue)}.theme-section-label{padding:1px 10px 7px;color:var(--text-soft);font-size:8px;font-weight:760;letter-spacing:.08em}.accent-label{padding-top:11px;margin-top:8px;border-top:1px solid var(--line)}.theme-options{display:grid;gap:5px}.theme-option{width:100%;min-height:52px;display:grid;grid-template-columns:32px minmax(0,1fr) 18px;align-items:center;gap:9px;padding:7px 9px;border:1px solid transparent;border-radius:9px;color:var(--text);background:transparent;text-align:left}.theme-option:hover{background:var(--panel-muted)}.theme-option.selected{border-color:color-mix(in srgb,var(--blue) 26%,transparent);background:var(--blue-soft)}.theme-option-icon{width:32px;height:32px;display:grid;place-items:center;border-radius:8px;color:var(--text-soft);background:var(--panel-muted)}.theme-option.selected .theme-option-icon{color:var(--blue);background:color-mix(in srgb,var(--blue) 13%,var(--panel))}.theme-option-icon svg{width:15px;height:15px}.theme-option strong{display:block;color:var(--text-strong);font-size:10px}.theme-option small{display:block;margin-top:3px;color:var(--text-soft);font-size:8px}.theme-check{width:15px!important;height:15px!important;color:var(--blue)}.accent-options{display:grid;grid-template-columns:repeat(7,1fr);gap:6px;padding:1px 10px 5px}.accent-swatch{position:relative;height:32px;display:grid;place-items:center;border:1px solid color-mix(in srgb,var(--swatch) 68%,var(--line));border-radius:9px;color:#fff;background:var(--swatch);box-shadow:inset 0 0 0 1px #ffffff1f}.accent-swatch:hover{transform:translateY(-1px);box-shadow:0 5px 12px color-mix(in srgb,var(--swatch) 24%,transparent)}.accent-swatch.selected{box-shadow:0 0 0 2px var(--panel),0 0 0 4px var(--swatch)}.accent-swatch svg{width:15px;height:15px;stroke-width:2.5}.accent-swatch.accent-mono{border-color:#9aa3ac;background:linear-gradient(135deg,#202830 0,#202830 33%,#7d8791 33%,#7d8791 66%,#f2f4f5 66%,#f2f4f5)}.accent-swatch.accent-mono.selected{box-shadow:0 0 0 2px var(--panel),0 0 0 4px #68727c}.accent-swatch.accent-mono svg{padding:1px;border-radius:50%;color:#111820;background:#fff}.theme-panel-note{display:flex;align-items:center;gap:7px;margin-top:8px;padding:9px 10px 3px;border-top:1px solid var(--line);color:var(--text-soft);font-size:8px}.theme-panel-note svg{width:12px;height:12px}.content{grid-column:2;grid-row:2;min-width:0;min-height:0;overflow:hidden;padding:25px 26px 22px;border-top-left-radius:28px;background:var(--canvas)}.page{height:100%;min-height:0;display:grid;grid-template-rows:auto minmax(0,1fr);gap:14px}.users-page,.roles-page{grid-template-rows:auto auto minmax(0,1fr)}.users-page{row-gap:0}.users-page .metric-strip{margin:1px 0 14px}.page-head{min-height:55px;display:flex;align-items:flex-start;justify-content:space-between;gap:20px}.page-title-row{display:flex;align-items:center;gap:11px}h1{margin:0;color:var(--text-strong);font-size:23px;line-height:1.1;letter-spacing:-.025em}.count{padding:4px 8px;border-radius:6px;color:#5d6c79;background:#dfe5ea;font-size:10px;font-weight:740;white-space:nowrap}.page-sub{margin-top:7px;color:var(--muted);font-size:11px}.head-actions{display:flex;gap:9px}.btn{height:38px;display:inline-flex;align-items:center;justify-content:center;gap:8px;padding:0 14px;border-radius:8px;font-size:11px;font-weight:700}.btn svg{width:15px;height:15px}.btn-secondary{border:1px solid #d7dee4;color:#465563;background:#fff}.btn-secondary:hover{border-color:#bdc8d1}.btn-primary{border:1px solid var(--blue);color:var(--accent-contrast);background:var(--blue);box-shadow:0 7px 16px rgba(var(--accent-rgb) / .18)}.btn-danger{border:1px solid var(--red);color:#fff;background:var(--red)}.metric-strip{height:82px;display:grid;grid-template-columns:repeat(4,1fr);gap:12px;border:0;border-radius:0;background:transparent;overflow:visible}.metric{min-width:0;display:flex;align-items:center;gap:12px;padding:0 17px;border:1px solid var(--card-border);border-radius:13px;background:var(--panel);box-shadow:var(--card-shadow);transition:transform .16s ease,box-shadow .16s ease,border-color .16s ease}.metric:hover{border-color:color-mix(in srgb,var(--blue) 18%,var(--card-border));box-shadow:var(--card-shadow-hover);transform:translateY(-1px)}.metric-icon{width:35px;height:35px;display:grid;place-items:center;border-radius:9px}.metric-icon svg{width:17px;height:17px}.metric-icon.blue{color:var(--blue);background:var(--blue-soft)}.metric-icon.green{color:var(--green);background:var(--green-soft)}.metric-icon.amber{color:var(--amber);background:var(--amber-soft)}.metric-icon.slate{color:#4c5d6b;background:#edf0f2}.metric-label{color:var(--muted);font-size:10px}.metric-value{margin-top:3px;font-size:20px;font-weight:780;letter-spacing:-.03em}.metric-delta{margin-left:6px;color:var(--green);font-size:9px;font-weight:740}.workspace{min-height:0;display:grid;grid-template-columns:218px minmax(0,1fr);gap:14px}.tree-panel,.list-panel,.menu-panel{min-height:0;border:1px solid var(--card-border);border-radius:14px;background:var(--panel);box-shadow:var(--card-shadow)}.tree-panel{display:flex;flex-direction:column;overflow:hidden}.panel-title{height:52px;display:flex;align-items:center;justify-content:space-between;padding:0 15px;border-bottom:1px solid var(--card-divider);background:var(--panel-soft)}.panel-title strong{font-size:11px}.tree{min-height:0;padding:3px 8px 12px;overflow:auto}.tree-row{width:100%;height:34px;display:flex;align-items:center;gap:8px;padding:0 9px;border:0;border-radius:7px;color:#5d6b77;background:transparent;text-align:left;font-size:11px}.tree-row:hover{background:#f4f6f8}.tree-row svg{width:14px;height:14px}.tree-row.active{color:var(--blue);background:var(--blue-soft);font-weight:700}.tree-row span:not(.tree-count){min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.tree-count{margin-left:auto;color:#89949d;font-size:9px}.root-row{width:calc(100% - 16px);margin:9px 8px 0}.list-panel{min-height:0;display:grid;grid-template-rows:auto auto minmax(0,1fr) auto}.list-toolbar{min-height:57px;display:flex;align-items:center;gap:9px;padding:10px 12px;border-bottom:1px solid var(--card-divider);background:var(--panel-soft)}.filter-control{height:34px;display:inline-flex;align-items:center;gap:7px;padding:0 10px;border:1px solid #dfe5ea;border-radius:7px;color:#53616e;background:#fff;font-size:10px}.filter-control svg{width:13px;height:13px;color:#74818c}.filter-control select{min-width:78px;border:0;outline:0;color:#53616e;background:transparent;font-size:10px}.filter-button{height:34px;display:inline-flex;align-items:center;gap:6px;padding:0 10px;border:1px solid #dfe5ea;border-radius:7px;color:#64717c;background:#fff;font-size:10px}.filter-button svg{width:13px;height:13px}.toolbar-spacer{flex:1}.result-count{color:#7d8993;font-size:9px}.selection-bar{min-height:37px;display:flex;align-items:center;gap:11px;padding:0 14px;color:#315899;border-bottom:1px solid #dae5ff;background:#f1f5ff;font-size:10px}.selection-bar select{height:25px;border:1px solid #cbd9f9;border-radius:5px;color:#315899;background:#fff;font-size:9px}.selection-bar button{border:0;color:var(--blue);background:transparent;font-size:10px;font-weight:680}.table-wrap{min-height:0;overflow:auto}.user-table{width:100%;min-width:850px;border-collapse:collapse;table-layout:fixed}.user-table th{position:sticky;z-index:2;top:0;height:39px;padding:0 12px;color:#73808b;background:#f8f9fa;text-align:left;font-size:9px;font-weight:760;letter-spacing:.02em}.user-table td{height:57px;padding:0 12px;border-top:1px solid var(--line-soft);color:#3c4a56;font-size:10px}.user-table tbody tr:hover{background:#fafbfc}.check{width:16px;height:16px;accent-color:var(--blue)}.col-check{width:42px;padding-left:14px!important}.col-user{width:218px}.col-dept{width:142px}.col-role{width:138px}.col-status{width:98px}.col-login{width:126px}.col-actions{position:relative;width:52px;text-align:right!important}.user-cell{display:flex;align-items:center;gap:10px;min-width:0}.user-name{color:#27343f;font-size:11px;font-weight:700}.user-email{margin-top:2px;overflow:hidden;color:#89939c;font-size:9px;text-overflow:ellipsis;white-space:nowrap}.role-tag{display:inline-flex;height:23px;align-items:center;padding:0 8px;border-radius:6px;color:#4e5d69;background:#eef1f3;font-size:9px;font-weight:680;white-space:nowrap}.status{display:inline-flex;align-items:center;gap:6px;font-size:9px;font-weight:700;white-space:nowrap}.status:before{content:"";width:6px;height:6px;border-radius:50%;background:currentColor}.status.active{color:var(--green)}.status.invited{color:var(--amber)}.status.disabled{color:#8a959e}.row-action{width:28px;height:28px;display:grid;place-items:center;border:0;border-radius:6px;color:#7b8791;background:transparent}.row-action:hover{color:#33434f;background:#eef1f3}.row-action svg{width:15px;height:15px}.row-action.danger{color:var(--red)}.row-menu{position:absolute;z-index:18;top:44px;right:12px;width:142px;padding:6px;border:1px solid var(--line);border-radius:9px;background:#fff;box-shadow:0 12px 28px #19283726;animation:pop .15s ease-out}.row-menu button{width:100%;height:31px;display:flex;align-items:center;gap:8px;padding:0 8px;border:0;border-radius:6px;color:#53616e;background:transparent;text-align:left;font-size:9px}.row-menu button:hover{background:#f1f4f6}.row-menu button.danger{color:var(--red)}.row-menu svg{width:13px;height:13px}.pagination{height:49px;display:flex;align-items:center;gap:12px;padding:0 14px;border-top:1px solid #e8ecef;color:#7a8792;font-size:9px}.pagination strong{color:#485662}.pager{display:flex;gap:3px;margin-left:auto}.pager button{min-width:26px;height:26px;padding:0 7px;border:1px solid #e0e5e9;border-radius:6px;color:#6d7a85;background:#fff;font-size:9px}.pager button.active{border-color:var(--blue);color:#fff;background:var(--blue)}.empty-state{min-height:220px;display:flex;flex-direction:column;align-items:center;justify-content:center;padding:32px;color:#84909a;text-align:center}.empty-state>span{width:38px;height:38px;display:grid;place-items:center;margin-bottom:11px;border-radius:50%;color:#668097;background:#edf2f6}.empty-state svg{width:17px;height:17px}.empty-state strong{color:#435362;font-size:12px}.empty-state p{margin:6px 0 0;font-size:10px}.role-stage{min-height:0;display:grid;grid-template-columns:244px minmax(0,1fr) 268px;border:1px solid var(--card-border);border-radius:15px;background:var(--panel);box-shadow:var(--card-shadow);overflow:hidden}.role-list{min-height:0;display:flex;flex-direction:column;border-right:1px solid var(--line);background:#fafbfc}.role-list-head{height:55px;display:flex;align-items:center;justify-content:space-between;padding:0 15px;border-bottom:1px solid var(--line)}.role-list-head strong{font-size:11px}.role-list-head button{width:27px;height:27px;display:grid;place-items:center;border:0;border-radius:7px;color:var(--accent-contrast);background:var(--blue)}.role-list-head svg{width:14px;height:14px}.inline-search{height:34px;display:flex;align-items:center;gap:8px;margin:11px 11px 7px;padding:0 10px;border:1px solid #e0e5e9;border-radius:7px;color:#8a959f;background:#fff}.inline-search svg{width:13px;height:13px}.inline-search input{width:100%;min-width:0;border:0;outline:0;color:#485662;background:transparent;font-size:9px}.roles{min-height:0;flex:1;padding:0 8px 10px;overflow:auto}.role-item{width:100%;padding:11px 11px 10px;margin:3px 0;border:0;border-radius:9px;color:#627069;background:transparent;text-align:left}.role-item:hover{background:#f1f4f6}.role-item.active{color:var(--text-strong);background:var(--blue-soft);box-shadow:inset 3px 0 var(--blue)}.role-line{display:flex;align-items:center;gap:8px}.role-icon{width:28px;height:28px;display:grid;place-items:center;border-radius:8px;color:#557083;background:#edf1f4}.role-item.active .role-icon{color:var(--blue);background:color-mix(in srgb,var(--blue) 17%,var(--panel))}.role-icon svg{width:14px;height:14px}.role-name{color:#34424f;font-size:10px;font-weight:720}.role-members{margin-left:auto;color:#99a39e;font-size:8px}.role-desc{margin:6px 0 0 36px;color:#85919b;font-size:8px;line-height:1.5}.role-tags{display:flex;gap:4px;margin:7px 0 0 36px}.mini-tag{padding:3px 6px;border-radius:4px;color:#667681;background:#eef2f5;font-size:7px;white-space:nowrap}.permission-main{min-width:0;min-height:0;display:grid;grid-template-rows:auto auto minmax(0,1fr)}.permission-head{min-height:73px;display:flex;align-items:center;gap:12px;padding:12px 17px;border-bottom:1px solid var(--line)}.permission-badge{width:40px;height:40px;display:grid;place-items:center;border-radius:10px;color:var(--accent-contrast);background:var(--blue)}.permission-badge svg{width:18px;height:18px}.permission-title{font-size:14px;font-weight:760}.permission-copy{margin-top:4px;color:#7b8781;font-size:9px}.permission-actions{display:flex;gap:7px;margin-left:auto}.square-btn{width:31px;height:31px;display:grid;place-items:center;border:1px solid #dfe5ea;border-radius:8px;color:#697783;background:#fff}.square-btn:hover{background:#f4f6f8}.square-btn svg{width:14px;height:14px}.permission-summary{min-height:48px;display:flex;align-items:center;gap:19px;padding:0 17px;border-bottom:1px solid var(--line);background:#fcfcfd}.summary-item{display:flex;align-items:center;gap:6px;color:#718079;font-size:8px}.summary-item svg{width:12px;height:12px;color:#74838e}.summary-item strong{color:#33433c;font-size:9px}.summary-dot{width:7px;height:7px;border-radius:50%}.summary-dot.green{background:var(--green)}.summary-dot.slate{background:#a5b0ba}.permission-scroll{min-height:0;overflow:auto;padding:2px 17px 18px}.permission-group{padding:13px 0 4px}.group-head{display:flex;align-items:center;gap:8px;padding-bottom:8px}.group-icon{width:24px;height:24px;display:grid;place-items:center;border-radius:7px;color:var(--blue);background:var(--blue-soft)}.group-icon svg{width:13px;height:13px}.group-head strong{font-size:10px}.group-head>span:last-child{margin-left:auto;color:#9aa39f;font-size:8px}.inline-check{display:flex;align-items:center;gap:4px;margin-left:8px;color:#5d6c78;font-size:8px}.inline-check input{accent-color:var(--blue)}.permission-row{min-height:38px;display:grid;grid-template-columns:minmax(0,1fr) 70px 70px;align-items:center;border-top:1px solid var(--line-soft);color:#59675f;font-size:9px}.permission-row.header{min-height:27px;color:#9aa39f;font-size:8px;font-weight:740}.permission-row.header div:not(:first-child){text-align:center}.check-wrap{position:relative;display:grid;place-items:center;width:100%;cursor:pointer}.check-wrap input{position:absolute;opacity:0;pointer-events:none}.check-wrap span{position:relative;width:16px;height:16px;border:1px solid #cfd8df;border-radius:5px;background:#fff}.check-wrap input:checked+span{border-color:var(--blue);background:var(--blue)}.check-wrap input:checked+span:after{content:"";position:absolute;left:5px;top:2px;width:4px;height:8px;border-right:2px solid var(--accent-contrast);border-bottom:2px solid var(--accent-contrast);transform:rotate(42deg)}.operation-row{min-height:32px;display:grid;grid-template-columns:minmax(0,1fr) minmax(110px,180px) 34px;align-items:center;padding-left:20px;border-top:1px dashed #edf0f2;color:#65727d;font-size:8px}.operation-row code{color:#7d8994;font-size:8px}.scope-panel{min-height:0;display:flex;flex-direction:column;border-left:1px solid var(--line);background:#fafbfc}.scope-head,.side-head{height:55px;display:flex;align-items:center;justify-content:space-between;padding:0 15px;border-bottom:1px solid var(--card-divider);background:var(--panel-soft)}.scope-head strong,.side-head strong{font-size:11px}.scope-head svg,.side-head svg{width:14px;height:14px;color:#8a9790}.scope-body,.side-body{min-height:0;flex:1;overflow:auto;padding:15px}.scope-section{margin-bottom:17px}.scope-label,.settings-label{margin-bottom:8px;color:#8b9691;font-size:8px;font-weight:760;letter-spacing:.08em}.scope-option,.scope-row{width:100%;display:flex;align-items:flex-start;gap:8px;padding:9px;margin:5px 0;border:1px solid #e2e7ea;border-radius:8px;color:#53616d;background:#fff;text-align:left}.scope-option.active,.scope-row.active{border-color:color-mix(in srgb,var(--blue) 38%,var(--line));background:var(--blue-soft);box-shadow:0 0 0 2px rgba(var(--accent-rgb) / .05)}.radio{width:15px;height:15px;flex:0 0 auto;display:grid;place-items:center;margin-top:1px;border:1px solid #cbd5cf;border-radius:50%}.scope-option.active .radio,.scope-row.active .radio{border:5px solid var(--blue)}.scope-option strong,.scope-row strong{display:block;color:#3d4d59;font-size:9px}.scope-option small,.scope-row small,.scope-option>span:last-child>small{display:block;margin-top:3px;color:#8a969f;font-size:8px;line-height:1.45}.data-preview{padding:11px;border:1px dashed #cfd9e2;border-radius:9px;background:#fff}.data-preview-title{display:flex;align-items:center;gap:7px;color:#687680;font-size:9px;font-weight:700}.data-preview-title svg{width:13px;height:13px;color:var(--blue)}.dept-chip{display:inline-flex;align-items:center;gap:5px;margin:9px 4px 0 0;padding:5px 7px;border-radius:6px;color:#46628a;background:#edf2fa;font-size:8px}.dept-chip svg{width:10px;height:10px}.scope-foot,.side-foot{padding:12px 15px;border-top:1px solid var(--line);background:#fff}.save-button,.side-save{width:100%;height:36px;display:flex;align-items:center;justify-content:center;gap:7px;border:0;border-radius:8px;color:var(--accent-contrast);background:var(--blue);font-size:9px;font-weight:720}.save-button svg,.side-save svg{width:13px;height:13px}.menu-panel{min-height:0;display:grid;grid-template-rows:auto minmax(0,1fr);overflow:hidden}.menu-table{min-height:0;overflow:auto}.menu-table-head,.menu-table-row{min-width:920px;display:grid;grid-template-columns:minmax(230px,1.8fr) 80px 150px 170px 60px 70px 112px;align-items:center}.menu-table-head{position:sticky;z-index:3;top:0;height:39px;color:#73808b;background:#f8f9fa;font-size:9px;font-weight:760}.menu-table-head>div,.menu-table-row>div{min-width:0;padding:0 12px}.menu-table-row{min-height:55px;border-top:1px solid var(--line-soft);color:#53616e;font-size:9px}.menu-table-row:hover{background:#fafbfc}.menu-table-row.button{background:#fcfcfd}.menu-table-row.button:hover{background:#f8fafb}.menu-table-row code{display:block;overflow:hidden;color:#6f7d88;font-size:8px;text-overflow:ellipsis;white-space:nowrap}.menu-name{padding-left:calc(12px + var(--level) * 22px)!important;display:flex;align-items:center;gap:8px}.menu-name strong{overflow:hidden;color:#354451;font-size:10px;text-overflow:ellipsis;white-space:nowrap}.expand-button{width:18px;height:18px;display:grid;place-items:center;padding:0;border:0;color:#8b97a1;background:transparent}.expand-button svg{width:13px;height:13px}.menu-type-icon{width:26px;height:26px;display:grid;place-items:center;border-radius:7px;color:#446791;background:#edf3fb}.menu-type-icon.button{color:#7b6430;background:#f7f2e6}.menu-type-icon svg{width:13px;height:13px}.type-chip{display:inline-flex;align-items:center;height:21px;padding:0 7px;border-radius:5px;color:#315f91;background:#eaf2fb;font-size:8px;font-weight:700}.type-chip.button{color:#896b2f;background:#f8f0df}.switch{width:34px;height:19px;padding:2px;border:0;border-radius:99px;background:#cbd4dc}.switch span{display:block;width:15px;height:15px;border-radius:50%;background:#fff;box-shadow:0 1px 3px #19283738;transition:transform .16s ease}.switch.on{background:var(--blue)}.switch.on span{transform:translate(15px)}.row-actions{display:flex;justify-content:flex-end;gap:2px}.department-board{min-height:0;display:grid;grid-template-columns:286px minmax(0,1fr) 292px;border:1px solid var(--card-border);border-radius:15px;background:var(--panel);box-shadow:var(--card-shadow);overflow:hidden}.tree-pane{min-height:0;display:flex;flex-direction:column;padding:14px 12px;border-right:1px solid var(--line);background:#fafbfc}.pane-head{height:35px;display:flex;align-items:center;justify-content:space-between;padding:0 4px}.pane-head strong{font-size:11px}.pane-head button{width:27px;height:27px;display:grid;place-items:center;border:0;border-radius:7px;color:var(--accent-contrast);background:var(--blue)}.pane-head svg{width:14px;height:14px}.org-tree{min-height:0;flex:1;overflow:auto;padding-right:3px}.org-row{position:relative;width:100%;min-height:38px;display:flex;align-items:center;gap:8px;padding:0 9px;border:0;border-radius:8px;color:#536272;background:transparent;text-align:left;font-size:9px}.org-row:hover{background:#f1f4f6}.org-row.active{color:var(--blue);background:var(--blue-soft);font-weight:700}.org-row.active:before{content:"";position:absolute;left:0;top:7px;bottom:7px;width:2px;border-radius:2px;background:var(--blue)}.org-row .chevron{width:12px;height:12px;color:#9ba4ad}.chevron-spacer{width:12px}.org-row .org-icon{width:14px;height:14px;color:#788796}.org-row.active .org-icon{color:var(--blue)}.org-row .count{margin-left:auto;color:#9aa3ac;font-size:8px}.tree-foot{display:flex;align-items:center;gap:8px;margin-top:9px;padding:9px;border-radius:8px;color:#75838f;background:#f1f4f6;font-size:8px}.tree-foot svg{width:13px;height:13px;color:var(--blue)}.dept-main{min-width:0;min-height:0;display:grid;grid-template-rows:auto auto auto minmax(0,1fr);overflow:hidden}.dept-cover{min-height:118px;display:flex;align-items:center;gap:16px;padding:20px 22px;border-bottom:1px solid var(--line)}.dept-symbol{width:56px;height:56px;display:grid;place-items:center;border-radius:15px;color:var(--blue);background:var(--blue-soft)}.dept-symbol svg{width:25px;height:25px;stroke-width:1.8}.dept-name{display:flex;align-items:center;gap:8px;font-size:17px;font-weight:780}.status-dot{padding:4px 7px;border-radius:5px;color:#26745a;background:#e6f5ee;font-size:8px;font-weight:720}.dept-meta{display:flex;flex-wrap:wrap;gap:16px;margin-top:8px;color:#7f8a95;font-size:8px}.dept-meta span{display:flex;align-items:center;gap:5px}.dept-meta svg{width:11px;height:11px}.dept-actions{display:flex;gap:7px;margin-left:auto}.dept-stats{min-height:72px;display:grid;grid-template-columns:repeat(4,1fr);border-bottom:1px solid var(--line)}.dept-stats>div{display:flex;flex-direction:column;justify-content:center;padding:0 18px;border-right:1px solid var(--line)}.dept-stats>div:last-child{border-right:0}.dept-stats span{color:#8a949e;font-size:8px}.dept-stats strong{margin-top:5px;font-size:16px}.dept-stats small{margin-left:5px;color:#2f8a73;font-size:8px}.section-head{min-height:46px;display:flex;align-items:center;justify-content:space-between;padding:0 18px;border-bottom:1px solid var(--line)}.section-head strong{font-size:10px}.section-head span{color:#8d97a0;font-size:8px}.member-list{min-height:0;overflow:auto}.member-row{min-height:52px;display:grid;grid-template-columns:minmax(0,1fr) 110px 84px;align-items:center;padding:0 18px;border-bottom:1px solid var(--line-soft)}.member{display:flex;align-items:center;gap:9px;min-width:0}.member-name{color:#394755;font-size:9px;font-weight:700}.member-email{margin-top:2px;color:#929ba4;font-size:8px}.member-role{color:#707c88;font-size:8px}.setting-row{display:flex;align-items:center;gap:8px;min-height:34px;color:#52606d;font-size:8px}.setting-row svg{width:12px;height:12px;color:#81909d}.setting-row strong{margin-left:auto;color:#394755;font-size:8px}.setting-row strong.positive{color:var(--green)}.settings-group{padding-bottom:16px;margin-bottom:15px;border-bottom:1px solid #e5e8eb}.settings-group:last-child{margin-bottom:0;border-bottom:0}.panel-title,.pagination,.role-list-head,.permission-head,.permission-summary,.scope-head,.side-head,.dept-cover,.dept-stats,.dept-stats>div,.section-head,.member-row,.settings-group,.permission-row,.menu-table-row,.user-table td,.notification-item{border-color:var(--card-divider)}.overlay{position:fixed;z-index:100;top:0;right:0;bottom:0;left:0;display:grid;place-items:center;padding:24px;background:#0f19247a;-webkit-backdrop-filter:blur(3px);backdrop-filter:blur(3px);animation:fade .15s ease-out}.modal{width:min(100%,620px);max-height:calc(100dvh - 48px);display:grid;grid-template-rows:auto minmax(0,1fr) auto;border:1px solid rgba(255,255,255,.5);border-radius:14px;background:#fff;box-shadow:var(--shadow);animation:rise .18s ease-out}.modal-small{width:min(100%,430px)}.modal-head{min-height:76px;display:flex;align-items:flex-start;justify-content:space-between;padding:18px 20px 14px;border-bottom:1px solid var(--line)}.eyebrow{margin-bottom:5px;color:var(--blue);font-size:8px;font-weight:780;letter-spacing:.1em;text-transform:uppercase}.modal h2{margin:0;font-size:18px;letter-spacing:-.02em}.modal-close{color:#788691!important;border-color:#e1e6ea!important;background:#f7f8f9!important}.modal-body{min-height:0;overflow:auto;padding:19px 20px}.modal-foot{display:flex;justify-content:flex-end;gap:8px;padding:13px 20px;border-top:1px solid var(--line);background:#fafbfc}.form-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:15px}.field{min-width:0;display:flex;flex-direction:column;gap:7px}.field-wide{grid-column:1 / -1}.field-label{color:#50606d;font-size:10px;font-weight:700}.field input,.field select,.field textarea{width:100%;min-width:0;border:1px solid #d9e0e5;border-radius:8px;outline:0;color:#35434f;background:#fff;font-size:10px}.field input,.field select{height:38px;padding:0 10px}.field textarea{padding:10px;resize:vertical}.field input:focus,.field select:focus,.field textarea:focus{border-color:color-mix(in srgb,var(--blue) 58%,white);box-shadow:0 0 0 3px rgba(var(--accent-rgb) / .09)}.field input:disabled{color:#8b969f;background:#f4f6f7}.field-hint{color:#8c969f;font-size:8px}.confirm-copy{margin:0;color:#66737e;font-size:11px;line-height:1.7}.toast{position:fixed;z-index:150;right:26px;bottom:24px;height:42px;display:flex;align-items:center;gap:8px;padding:0 14px;border:1px solid rgba(255,255,255,.12);border-radius:9px;color:#fff;background:#23313e;box-shadow:0 14px 35px #0b172340;font-size:10px;font-weight:650;animation:rise .18s ease-out}.toast svg{width:15px;height:15px;color:#65d6aa}.observability-page{grid-template-rows:auto auto minmax(0,1fr);gap:12px}.monitor-page{grid-template-rows:auto auto auto minmax(245px,1fr);gap:12px;overflow:auto;padding-right:2px}.observability-card{min-height:0;display:grid;grid-template-rows:auto minmax(0,1fr) auto;border:1px solid var(--card-border);border-radius:14px;background:var(--panel);box-shadow:var(--card-shadow);overflow:hidden}.metric-icon.red{color:var(--red);background:color-mix(in srgb,var(--red) 11%,var(--panel))}.metric-delta.danger{color:var(--red)}.metric-delta.warning{color:var(--amber)}.data-table-wrap{min-height:0;overflow:auto}.data-table{width:100%;border-collapse:collapse;table-layout:fixed}.data-table th{position:sticky;z-index:2;top:0;height:38px;padding:0 11px;color:#73808b;background:var(--panel-soft);text-align:left;font-size:8px;font-weight:760;letter-spacing:.025em}.data-table td{min-height:56px;height:56px;padding:0 11px;border-top:1px solid var(--card-divider);color:var(--text);font-size:9px;vertical-align:middle}.data-table tbody tr{transition:background .14s ease}.data-table tbody tr:hover{background:color-mix(in srgb,var(--blue) 3.5%,var(--panel))}.data-table code{display:block;overflow:hidden;color:var(--text-soft);font-size:8px;text-overflow:ellipsis;white-space:nowrap}.data-table .strong-cell{color:var(--text-strong);font-weight:680}.log-table{min-width:1010px}.login-table{min-width:1040px}.exception-table{min-width:1030px}.service-table{min-width:850px}.log-time{width:142px;white-space:nowrap}.log-user{width:154px}.log-module{width:104px}.log-action{width:116px}.log-target{width:126px}.log-ip{width:110px}.log-result{width:86px}.login-method{width:112px}.login-device{width:210px}.login-risk{width:84px}.exception-severity{width:74px}.exception-service{width:170px}.exception-count{width:64px;text-align:center!important}.exception-time{width:142px}.exception-owner{width:108px}.table-user{display:flex;align-items:center;gap:8px;min-width:0}.table-user .avatar{width:28px;height:28px;font-size:9px}.table-user-name{color:var(--text-strong);font-size:9px;font-weight:690}.table-user-sub{margin-top:2px;overflow:hidden;color:var(--text-soft);font-size:7px;text-overflow:ellipsis;white-space:nowrap}.stacked-cell strong{display:block;overflow:hidden;color:var(--text);font-size:8px;font-weight:650;text-overflow:ellipsis;white-space:nowrap}.stacked-cell span{display:block;margin-top:2px;color:var(--text-soft);font-size:7px}.soft-chip{display:inline-flex;align-items:center;gap:4px;height:21px;padding:0 7px;border-radius:6px;color:var(--text-soft);background:var(--panel-muted);font-size:7px;font-weight:650;white-space:nowrap}.soft-chip svg{width:10px;height:10px}.soft-chip.mono{font-family:SFMono-Regular,Consolas,monospace}.semantic-badge{display:inline-flex;align-items:center;height:21px;padding:0 7px;border-radius:999px;font-size:7px;font-weight:740;white-space:nowrap}.result-success,.status-success,.service-healthy,.risk-low,.severity-info{color:var(--green);background:var(--green-soft)}.result-failed,.status-failed,.risk-high,.severity-critical{color:var(--red);background:color-mix(in srgb,var(--red) 11%,var(--panel))}.result-blocked,.status-warning,.service-degraded,.risk-medium,.severity-warning,.service-warning{color:var(--amber);background:var(--amber-soft)}.row-action.success{color:var(--green)}.monitor-layout{min-height:255px;display:grid;grid-template-columns:minmax(0,1.55fr) minmax(240px,.75fr);gap:12px}.resource-panel{grid-template-rows:auto auto minmax(0,1fr)}.resource-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:10px;padding:12px 14px 9px}.resource-card{min-width:0;padding:11px;border:1px solid var(--card-divider);border-radius:11px;background:var(--panel-soft)}.resource-head{display:flex;align-items:center;justify-content:space-between}.resource-icon{width:25px;height:25px;display:grid;place-items:center;border-radius:7px}.resource-icon svg{width:13px;height:13px}.resource-icon.blue{color:var(--blue);background:var(--blue-soft)}.resource-icon.green{color:var(--green);background:var(--green-soft)}.resource-icon.amber{color:var(--amber);background:var(--amber-soft)}.resource-icon.slate{color:#5d6c78;background:var(--panel-muted)}.live-label{display:flex;align-items:center;gap:4px;color:var(--text-soft);font-size:7px}.live-label i{width:5px;height:5px;border-radius:50%;background:var(--green);box-shadow:0 0 0 3px color-mix(in srgb,var(--green) 12%,transparent)}.resource-label{margin-top:9px;color:var(--text-soft);font-size:8px}.resource-value{margin-top:3px;color:var(--text-strong);font-size:18px;font-weight:760}.resource-value small{margin-left:2px;color:var(--text-soft);font-size:8px}.resource-track{height:4px;margin-top:8px;border-radius:99px;background:var(--panel-muted);overflow:hidden}.resource-track span{display:block;height:100%;border-radius:inherit;background:var(--blue)}.resource-card:nth-child(2) .resource-track span{background:var(--green)}.resource-card:nth-child(3) .resource-track span{background:var(--amber)}.resource-card:nth-child(4) .resource-track span{background:#758594}.monitor-timeline{min-height:0;padding:10px 14px 13px;border-top:1px solid var(--card-divider)}.timeline-head{display:flex;align-items:center;justify-content:space-between}.timeline-head strong{font-size:9px}.timeline-head span{color:var(--text-soft);font-size:7px}.mini-bars{height:78px;display:flex;align-items:end;gap:3px;margin-top:8px;padding-top:4px;border-bottom:1px solid var(--card-divider)}.mini-bars span{flex:1;min-width:3px;border-radius:3px 3px 1px 1px;background:linear-gradient(to top,color-mix(in srgb,var(--blue) 55%,var(--panel)),var(--blue));opacity:.82}.mini-bars span:nth-child(4n){opacity:1}.monitor-side-card{grid-template-rows:auto minmax(0,1fr) auto}.section-head .status{color:var(--green);font-size:8px}.section-head .status i{width:6px;height:6px;border-radius:50%;background:currentColor}.health-list{padding:7px 14px 3px}.health-list>div{min-height:38px;display:flex;align-items:center;justify-content:space-between;border-bottom:1px solid var(--card-divider);color:var(--text-soft);font-size:8px}.health-list>div:last-child{border-bottom:0}.health-list strong{color:var(--text);font-size:8px;font-weight:680}.health-list strong.warning-text,.danger-text{color:var(--red)!important}.auto-refresh{display:flex;align-items:center;justify-content:space-between;padding:10px 14px;border-top:1px solid var(--card-divider);background:var(--panel-soft)}.auto-refresh strong{display:block;color:var(--text);font-size:8px}.auto-refresh span{display:block;margin-top:2px;color:var(--text-soft);font-size:7px}.service-panel{min-height:245px}.service-name{display:flex;align-items:center;gap:7px;color:var(--text-strong)}.service-name strong{font-size:9px}.service-dot{width:7px;height:7px;flex:0 0 auto;border-radius:50%;background:var(--green);box-shadow:0 0 0 3px color-mix(in srgb,var(--green) 12%,transparent)}.service-dot.degraded{background:var(--amber);box-shadow:0 0 0 3px color-mix(in srgb,var(--amber) 12%,transparent)}.service-dot.warning{background:var(--red);box-shadow:0 0 0 3px color-mix(in srgb,var(--red) 12%,transparent)}.exception-message{overflow:hidden;color:var(--text);font-size:8px;font-weight:620;text-overflow:ellipsis;white-space:nowrap}.alert-detail{display:flex;gap:12px;padding:13px;margin-bottom:16px;border:1px solid var(--card-divider);border-radius:11px;background:var(--panel-soft)}.alert-symbol{width:36px;height:36px;flex:0 0 auto;display:grid;place-items:center;border-radius:10px;color:var(--red);background:color-mix(in srgb,var(--red) 12%,var(--panel))}.alert-symbol.warning{color:var(--amber);background:var(--amber-soft)}.alert-symbol.info{color:var(--blue);background:var(--blue-soft)}.alert-symbol svg{width:17px;height:17px}.alert-detail strong{color:var(--text-strong);font:700 11px SFMono-Regular,Consolas,monospace}.alert-detail p{margin:6px 0 0;color:var(--text-soft);font-size:9px;line-height:1.6}.detail-list{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));border:1px solid var(--card-divider);border-radius:11px;overflow:hidden}.detail-item{min-height:54px;display:flex;flex-direction:column;justify-content:center;padding:9px 12px;border-right:1px solid var(--card-divider);border-bottom:1px solid var(--card-divider)}.detail-item:nth-child(2n){border-right:0}.detail-item span{color:var(--text-soft);font-size:8px}.detail-item strong{margin-top:4px;color:var(--text-strong);font-size:9px;font-weight:680;overflow-wrap:anywhere}.detail-note{padding:13px 14px;margin-top:14px;border:1px solid var(--card-divider);border-radius:11px;background:var(--panel-soft)}.detail-note strong{color:var(--text-strong);font-size:9px}.detail-note p{margin:6px 0 0;color:var(--text-soft);font-size:9px;line-height:1.65}.btn.is-loading svg{animation:spin .8s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}:root[data-accent=blue]{--accent: #2867f0;--accent-rgb: 40 103 240}:root[data-accent=violet]{--accent: #7357d9;--accent-rgb: 115 87 217}:root[data-accent=teal]{--accent: #168b7c;--accent-rgb: 22 139 124}:root[data-accent=green]{--accent: #2d8a4d;--accent-rgb: 45 138 77}:root[data-accent=amber]{--accent: #c76a23;--accent-rgb: 199 106 35}:root[data-accent=rose]{--accent: #c24f70;--accent-rgb: 194 79 112}:root[data-theme=dark]{color-scheme:dark;--shell-bg: #20262d;--shell-active: #2c343d;--shell-text: #aeb8c2;--shell-text-strong: #f1f4f6;--shell-text-muted: #7f8b96;--shell-line: rgba(255, 255, 255, .075);--shell-hover: rgba(255, 255, 255, .06);--shell-control: rgba(255, 255, 255, .035);--shell-control-hover: rgba(255, 255, 255, .085);--shell-control-border: rgba(255, 255, 255, .1);--ink: var(--shell-bg);--ink-3: var(--shell-active);--canvas: #141c25;--panel: #1b2530;--panel-soft: #17212b;--panel-muted: #222e39;--line: #2b3845;--line-soft: #25313d;--card-border: rgba(255, 255, 255, .075);--card-divider: rgba(255, 255, 255, .04);--card-shadow: 0 1px 2px rgba(0, 0, 0, .18), 0 16px 36px rgba(0, 0, 0, .14);--card-shadow-hover: 0 2px 5px rgba(0, 0, 0, .22), 0 20px 42px rgba(0, 0, 0, .2);--muted: #93a1ad;--text: #ccd6de;--text-strong: #f1f5f8;--text-soft: #91a0ac;--blue: color-mix(in srgb, var(--accent) 42%, white);--blue-soft: color-mix(in srgb, var(--accent) 18%, var(--panel));--accent-contrast: #111820;--green: #57c79f;--green-soft: #193a30;--amber: #e6a55b;--amber-soft: #3e2d1d;--red: #ef7c83;--shadow: 0 20px 56px rgba(0, 0, 0, .34)}:root[data-theme=dark] .content{color:var(--text)}:root[data-theme=dark] .tree-panel,:root[data-theme=dark] .list-panel,:root[data-theme=dark] .menu-panel,:root[data-theme=dark] .role-stage,:root[data-theme=dark] .department-board,:root[data-theme=dark] .modal,:root[data-theme=dark] .notification-panel,:root[data-theme=dark] .row-menu,:root[data-theme=dark] .data-preview,:root[data-theme=dark] .scope-option,:root[data-theme=dark] .scope-row,:root[data-theme=dark] .field input,:root[data-theme=dark] .field select,:root[data-theme=dark] .field textarea,:root[data-theme=dark] .filter-control,:root[data-theme=dark] .filter-button,:root[data-theme=dark] .btn-secondary,:root[data-theme=dark] .inline-search,:root[data-theme=dark] .square-btn,:root[data-theme=dark] .pager button{color:var(--text);border-color:var(--line);background:var(--panel)}:root[data-theme=dark] .role-list,:root[data-theme=dark] .scope-panel,:root[data-theme=dark] .tree-pane,:root[data-theme=dark] .side-pane,:root[data-theme=dark] .permission-summary,:root[data-theme=dark] .modal-foot,:root[data-theme=dark] .user-table th,:root[data-theme=dark] .menu-table-head,:root[data-theme=dark] .empty-state>span,:root[data-theme=dark] .notification-panel>button{color:var(--text-soft);background:var(--panel-soft)}:root[data-theme=dark] .panel-title,:root[data-theme=dark] .metric,:root[data-theme=dark] .list-toolbar,:root[data-theme=dark] .pagination,:root[data-theme=dark] .role-list-head,:root[data-theme=dark] .permission-head,:root[data-theme=dark] .permission-summary,:root[data-theme=dark] .scope-head,:root[data-theme=dark] .side-head,:root[data-theme=dark] .dept-cover,:root[data-theme=dark] .dept-stats,:root[data-theme=dark] .dept-stats>div,:root[data-theme=dark] .section-head,:root[data-theme=dark] .member-row,:root[data-theme=dark] .modal-head,:root[data-theme=dark] .modal-foot,:root[data-theme=dark] .settings-group,:root[data-theme=dark] .user-table td,:root[data-theme=dark] .menu-table-row,:root[data-theme=dark] .permission-row,:root[data-theme=dark] .notification-item{border-color:var(--card-divider)}:root[data-theme=dark] .user-table tbody tr:hover,:root[data-theme=dark] .menu-table-row:hover,:root[data-theme=dark] .role-item:hover,:root[data-theme=dark] .org-row:hover,:root[data-theme=dark] .tree-row:hover,:root[data-theme=dark] .row-menu button:hover{background:var(--panel-muted)}:root[data-theme=dark] .role-item.active,:root[data-theme=dark] .org-row.active,:root[data-theme=dark] .tree-row.active,:root[data-theme=dark] .scope-option.active,:root[data-theme=dark] .scope-row.active{color:var(--blue);background:var(--blue-soft)}:root[data-theme=dark] h1,:root[data-theme=dark] .metric-value,:root[data-theme=dark] .user-name,:root[data-theme=dark] .role-name,:root[data-theme=dark] .permission-title,:root[data-theme=dark] .modal h2,:root[data-theme=dark] .member-name,:root[data-theme=dark] .dept-name,:root[data-theme=dark] .pagination strong,:root[data-theme=dark] .summary-item strong,:root[data-theme=dark] .setting-row strong,:root[data-theme=dark] .notification-item strong,:root[data-theme=dark] .empty-state strong{color:var(--text-strong)}:root[data-theme=dark] .page-sub,:root[data-theme=dark] .metric-label,:root[data-theme=dark] .user-email,:root[data-theme=dark] .result-count,:root[data-theme=dark] .role-desc,:root[data-theme=dark] .role-members,:root[data-theme=dark] .permission-copy,:root[data-theme=dark] .member-email,:root[data-theme=dark] .member-role,:root[data-theme=dark] .dept-meta,:root[data-theme=dark] .dept-stats span,:root[data-theme=dark] .section-head span,:root[data-theme=dark] .scope-option small,:root[data-theme=dark] .scope-row small,:root[data-theme=dark] .field-hint,:root[data-theme=dark] .confirm-copy,:root[data-theme=dark] .pagination,:root[data-theme=dark] .empty-state,:root[data-theme=dark] .notification-item p{color:var(--text-soft)}:root[data-theme=dark] .user-table td,:root[data-theme=dark] .menu-table-row,:root[data-theme=dark] .filter-control,:root[data-theme=dark] .filter-control select,:root[data-theme=dark] .filter-button,:root[data-theme=dark] .inline-search input,:root[data-theme=dark] .setting-row,:root[data-theme=dark] .scope-option strong,:root[data-theme=dark] .scope-row strong,:root[data-theme=dark] .field-label,:root[data-theme=dark] .member-role,:root[data-theme=dark] .role-tag{color:var(--text)}:root[data-theme=dark] .role-tag,:root[data-theme=dark] .mini-tag,:root[data-theme=dark] .menu-type-icon,:root[data-theme=dark] .type-chip{border-color:var(--line);background:var(--panel-muted)}:root[data-theme=dark] .selection-bar{color:color-mix(in srgb,var(--blue) 55%,white);border-color:color-mix(in srgb,var(--blue) 34%,var(--line));background:color-mix(in srgb,var(--accent) 16%,var(--panel))}:root[data-theme=dark] .selection-bar select{color:color-mix(in srgb,var(--blue) 56%,white);border-color:color-mix(in srgb,var(--blue) 38%,var(--line));background:color-mix(in srgb,var(--accent) 12%,var(--panel))}:root[data-theme=dark] .field input:disabled{color:var(--text-soft);background:var(--panel-muted)}:root[data-theme=dark] .modal-close{color:var(--text-soft)!important;border-color:var(--line)!important;background:var(--panel-muted)!important}:root[data-theme=dark] .metric-strip{border:0;background:transparent;box-shadow:none}:root[data-theme=dark] .metric,:root[data-theme=dark] .tree-panel,:root[data-theme=dark] .list-panel,:root[data-theme=dark] .menu-panel,:root[data-theme=dark] .role-stage,:root[data-theme=dark] .department-board,:root[data-theme=dark] .observability-card{border-color:var(--card-border);box-shadow:var(--card-shadow)}:root[data-theme=dark] .metric:hover{border-color:color-mix(in srgb,var(--blue) 24%,var(--card-border));box-shadow:var(--card-shadow-hover)}:root[data-theme=dark] .data-table th{color:var(--text-soft);background:var(--panel-soft)}:root[data-theme=dark] .resource-card,:root[data-theme=dark] .auto-refresh,:root[data-theme=dark] .alert-detail,:root[data-theme=dark] .detail-note{border-color:var(--card-divider);background:var(--panel-soft)}@keyframes fade{0%{opacity:0}}@keyframes rise{0%{opacity:0;transform:translateY(8px) scale(.99)}}@keyframes pop{0%{opacity:0;transform:translateY(-4px) scale(.98)}}@media(max-width:1180px){.app-shell{grid-template-columns:68px minmax(0,1fr)}.sidebar{padding-inline:10px}.brand{width:58px;flex-basis:58px;justify-content:center;padding:0}.nav-collapse{display:none}.brand-copy,.nav-caption,.nav-item>span:not(.nav-badge),.security-note,.account>div,.account-more{display:none}.nav-parent{display:none}.nav-section+.nav-section{margin-top:6px}.nav-children{grid-template-rows:1fr;opacity:1;overflow:visible}.nav-children-inner{padding:0}.nav-children-inner:before{display:none}.nav-subitem{justify-content:center;padding:0}.nav-subitem-rail{display:none}.nav-item{justify-content:center;padding:0}.nav-item .nav-badge{position:absolute;margin:-24px 0 0 23px}.account{justify-content:center;padding-inline:0}.topbar{gap:0;padding-left:10px}.content{padding:22px 20px 18px}.role-stage{grid-template-columns:220px minmax(0,1fr) 245px}.department-board{grid-template-columns:250px minmax(0,1fr) 260px}}@media(max-width:920px){.app-shell{grid-template-columns:64px minmax(0,1fr)}.brand{width:54px;flex-basis:54px}.content{padding:18px 14px 14px;border-top-left-radius:22px}.top-search{width:min(300px,42vw)}.crumbs{min-width:0}.crumbs span,.crumbs svg{display:none}.metric-strip{grid-template-columns:repeat(2,1fr);height:auto;gap:10px}.metric{min-height:70px}.user-workspace{grid-template-columns:1fr;overflow:auto}.tree-panel{min-height:240px}.list-panel{min-height:540px}.role-stage{grid-template-columns:210px minmax(0,1fr)}.scope-panel{display:none}.department-board{grid-template-columns:230px minmax(0,1fr)}.side-pane{display:none}.monitor-layout{grid-template-columns:1fr;min-height:520px}.monitor-side-card{min-height:250px}.resource-grid{grid-template-columns:repeat(2,1fr)}}@media(max-width:680px){body{overflow:auto}.app-shell{min-width:0;height:auto;min-height:100dvh;grid-template-columns:1fr;grid-template-rows:44px auto minmax(0,1fr);overflow:visible}.app-shell.nav-collapsed{grid-template-columns:1fr}.sidebar{grid-column:1;grid-row:2;width:100%;min-width:0;max-width:100vw;height:44px;flex-direction:row;align-items:center;padding:4px 12px;overflow-x:auto;overflow-y:hidden}.brand{width:48px;flex-basis:48px}.brand-mark{width:36px;height:36px}.nav-group{display:flex;gap:4px;margin:0}.nav-section{flex:0 0 auto;margin:0!important}.nav-children{display:flex;overflow:visible}.nav-children-inner{display:flex;gap:4px;padding:0}.nav-item{width:36px;height:36px;margin:0}.nav-item .nav-badge{display:none}.sidebar-spacer{display:block;min-width:8px}.account{border:0;padding:0}.topbar{grid-column:1;grid-row:1;min-height:44px;padding:0 12px;background:var(--ink)}.top-search{width:auto;flex:1}.kbd,.top-profile,.topbar>.icon-button{display:none}.content{grid-column:1;grid-row:3;min-height:0;overflow:visible;padding:18px 12px;border-radius:22px 22px 0 0}.page{height:auto;min-height:0;display:block}.page-head{margin-bottom:15px}.page-head{flex-direction:column}.head-actions{width:100%}.head-actions .btn{flex:1}.metric-strip{margin-bottom:14px}.workspace,.role-stage,.department-board,.menu-panel{min-height:620px}.role-stage{grid-template-columns:1fr}.role-list{max-height:260px;border-right:0;border-bottom:1px solid var(--line)}.permission-main{min-height:620px}.department-board{grid-template-columns:1fr}.tree-pane{max-height:300px;border-right:0;border-bottom:1px solid var(--line)}.dept-main{min-height:560px}.form-grid{grid-template-columns:1fr}.field-wide{grid-column:auto}.filter-control{flex:1}.result-count{display:none}.notification-panel{right:-44px}.observability-card,.monitor-page .observability-card{min-height:560px}.monitor-page .resource-panel{min-height:470px}.monitor-page .monitor-side-card{min-height:250px}.monitor-page .service-panel{min-height:460px}.resource-grid,.detail-list{grid-template-columns:1fr}.detail-item{border-right:0}}.app-loading{min-height:100vh;display:grid;place-content:center;justify-items:center;gap:12px;color:#576674;background:#eef1f3;font-size:12px}.app-loading svg{width:25px;height:25px;color:var(--blue)}.auth-shell{min-height:100vh;display:grid;grid-template-columns:minmax(360px,.9fr) minmax(480px,1.1fr);background:#f2f4f6}.auth-brand-panel{position:relative;min-height:100vh;display:flex;flex-direction:column;justify-content:space-between;padding:44px 54px;overflow:hidden;color:#f5f8fa;background:linear-gradient(145deg,#18212a,#26333d 58%,#182129)}.auth-brand-panel:after{content:"";position:absolute;width:420px;height:420px;right:-170px;bottom:-150px;border:1px solid rgba(255,255,255,.09);border-radius:50%;box-shadow:0 0 0 70px #ffffff06,0 0 0 140px #ffffff04}.auth-brand{position:relative;z-index:1;display:flex;align-items:center;gap:12px}.auth-brand>span{width:42px;height:42px;display:grid;place-items:center;border-radius:11px;color:#fff;background:#ffffff1f}.auth-brand svg{width:22px;height:22px}.auth-brand strong,.auth-brand small{display:block}.auth-brand strong{font-size:15px;letter-spacing:.01em}.auth-brand small{margin-top:3px;color:#98a8b5;font-size:9px;text-transform:uppercase;letter-spacing:.14em}.auth-statement{position:relative;z-index:1;max-width:470px}.auth-eyebrow{color:#8eb4d4;font-size:10px;font-weight:750;letter-spacing:.16em}.auth-statement h1{margin:15px 0 14px;font-size:clamp(32px,4vw,54px);line-height:1.06;letter-spacing:-.035em}.auth-statement p{margin:0;color:#aebbc5;font-size:14px;line-height:1.8}.auth-trust{position:relative;z-index:1;display:flex;flex-wrap:wrap;gap:10px}.auth-trust span{display:inline-flex;align-items:center;gap:7px;padding:8px 10px;border:1px solid rgba(255,255,255,.1);border-radius:8px;color:#b8c5ce;background:#ffffff09;font-size:10px}.auth-trust svg{width:13px;height:13px}.auth-form-panel{display:grid;place-items:center;padding:38px}.auth-card{width:min(440px,100%);padding:28px;border:1px solid #dce2e7;border-radius:16px;background:#fff;box-shadow:0 22px 60px #23313d17}.auth-card-head{display:flex;gap:13px;align-items:flex-start;margin-bottom:24px}.auth-card-icon{width:38px;height:38px;flex:0 0 auto;display:grid;place-items:center;border-radius:10px;color:var(--blue);background:#edf3fb}.auth-card-icon svg{width:18px;height:18px}.auth-card h2{margin:1px 0 5px;color:#26333d;font-size:19px;letter-spacing:-.02em}.auth-card-head p{margin:0;color:#74828f;font-size:11px;line-height:1.6}.auth-error{display:flex;align-items:flex-start;gap:8px;margin-bottom:16px;padding:10px 11px;border:1px solid #f0c9c9;border-radius:9px;color:#9d3434;background:#fff5f5;font-size:11px;line-height:1.5}.auth-error svg{width:14px;height:14px;flex:0 0 auto;margin-top:1px}.auth-form{display:grid;gap:15px}.auth-form label>span,.totp-secret>span{display:block;margin-bottom:7px;color:#52616e;font-size:10px;font-weight:700}.auth-form input{width:100%;height:42px;padding:0 12px;border:1px solid #d8e0e6;border-radius:9px;color:#283641;background:#fbfcfd;font:inherit;font-size:13px;outline:none}.auth-form input:focus{border-color:var(--blue);box-shadow:0 0 0 3px rgba(var(--accent-rgb) / .1);background:#fff}.auth-submit{width:100%;height:42px;margin-top:2px}.auth-link{justify-self:center;border:0;color:var(--blue);background:transparent;font-size:11px;font-weight:700}.auth-link.muted{color:#7b8995;font-weight:600}.totp-secret{padding:12px;border:1px solid #dfe6eb;border-radius:9px;background:#f8fafb}.totp-qr{justify-self:center;display:grid;justify-items:center;gap:8px}.totp-qr img{width:180px;height:180px;border:1px solid #dfe6eb;border-radius:10px;background:#fff}.totp-qr span{color:#74828f;font-size:10px}.totp-secret code{display:block;color:#263843;font-size:13px;font-weight:700;letter-spacing:.08em;word-break:break-all}.recovery-code-list{display:grid;grid-template-columns:1fr 1fr;gap:8px}.recovery-code-list code{padding:10px;border:1px solid #dfe6eb;border-radius:7px;color:#32434f;background:#f8fafb;font-size:11px;text-align:center}.recovery-code-list .auth-submit{grid-column:1 / -1;margin-top:7px}.spin{animation:spin .8s linear infinite}@media(max-width:820px){.auth-shell{grid-template-columns:1fr}.auth-brand-panel{min-height:240px;padding:28px 24px}.auth-statement h1{font-size:32px}.auth-trust{display:none}.auth-form-panel{min-height:calc(100vh - 240px);padding:24px 16px 42px}}:root[data-theme=dark] .auth-shell{background:#121a22}:root[data-theme=dark] .auth-form-panel{background:#141c25}:root[data-theme=dark] .auth-card{border-color:#303b46;background:#202a34;box-shadow:0 22px 60px #0000003d}:root[data-theme=dark] .auth-card h2{color:#edf2f6}:root[data-theme=dark] .auth-card-head p,:root[data-theme=dark] .auth-form label>span{color:#9dadb9}:root[data-theme=dark] .auth-form input,:root[data-theme=dark] .totp-secret,:root[data-theme=dark] .recovery-code-list code{border-color:#3a4651;color:#e6edf2;background:#18222b}
