:root{color-scheme:light;--ink:#171c26;--muted:#596371;--line:#dce1e6;--teal:#0f766e;--soft:#e9f3f1;--bg:#f4f5f8;font:14px/1.65 -apple-system,BlinkMacSystemFont,"Segoe UI","Microsoft YaHei",sans-serif;color:var(--ink);background:var(--bg)}
*{box-sizing:border-box}body{margin:0}a{color:var(--teal);text-underline-offset:3px}button,input,select{font:inherit}button,a,input,select{touch-action:manipulation}button,.button{border:1px solid var(--line);border-radius:7px;padding:8px 14px;cursor:pointer;background:white;color:var(--ink);text-decoration:none;display:inline-block}button:hover,.button:hover{background:var(--soft)}button:disabled{cursor:wait;opacity:.6}.primary{background:var(--teal);border-color:var(--teal);color:white}.primary:hover{background:#0d5f59;color:white}:focus-visible{outline:3px solid #0f766e;outline-offset:3px}input,select{min-height:40px;border:1px solid var(--line);border-radius:6px;padding:7px 10px;background:white;max-width:100%}input::placeholder{color:var(--muted)}input[type=checkbox]{min-height:20px;width:18px;accent-color:var(--teal)}input{caret-color:var(--teal)}::selection{background:#cfe4df;color:#171c26}
.login{min-height:100svh;display:grid;place-items:center;padding:24px}.login main{max-width:440px;width:100%;padding:36px;background:white;border:1px solid var(--line);border-radius:10px}.login h1{font-size:22px;margin:0 0 12px}.muted{color:var(--muted)}#message{min-height:2em;margin:24px 0 20px}header{display:flex;align-items:center;justify-content:space-between;gap:16px;border-bottom:1px solid var(--line);padding:18px 24px;background:white}header h1{font-size:18px;margin:0}.wrap{max-width:1120px;margin:auto;padding:24px}section{margin-bottom:32px}h2{font-size:16px;margin:24px 0 12px}label{display:inline-flex;align-items:center;gap:8px}.row{display:flex;align-items:end;flex-wrap:wrap;gap:12px}.field{display:flex;align-items:stretch;flex-direction:column;gap:4px}.field input{min-width:180px}#status{padding:12px 0;min-height:48px;white-space:pre-wrap}#status[data-error=true]{color:#a52c27}.table-wrap{overflow:auto;background:white;border:1px solid var(--line);border-radius:8px}table{border-collapse:collapse;width:100%;text-align:left}th,td{padding:10px 12px;border-bottom:1px solid var(--line);white-space:nowrap}th{color:var(--muted);font-weight:600}tbody tr:last-child td{border-bottom:0}td button{padding:4px 8px;margin:2px}td input{min-width:100px;max-width:200px}.danger{color:#a52c27}ul{padding-left:20px}.results:empty{display:none}.results{padding:10px 0}.result,.dept{display:flex;align-items:center;gap:12px;padding:10px 0;border-bottom:1px solid var(--line)}.result span{flex:1}.result select{min-width:80px}.dept ul{width:100%}.bootstrap{padding:12px 16px;background:var(--soft);border:1px solid #cfe4df;border-radius:7px}.actions{display:flex;align-items:center;gap:12px}.actions form{margin:0}small{color:var(--muted)}
@media(max-width:600px){header{padding:14px 16px;align-items:flex-start}.wrap{padding:16px}.login main{padding:26px}.result{flex-wrap:wrap}.result span{flex-basis:100%}.field{width:100%}.field input{width:100%}.actions{flex-wrap:wrap;justify-content:flex-end}header h1{font-size:16px;white-space:nowrap}}
thead th{background:#f7f8fa}

/* 用户管理页面：沿用中台的中性表面与青绿色交互。 */
.users-page{background:#f4f5f8;color:var(--ink)}
.users-page .users-header{min-height:64px;padding:12px 32px}
.users-brand{display:flex;align-items:center;gap:12px;font-weight:600;white-space:nowrap}
.users-brand-mark{display:grid;place-items:center;width:28px;height:28px;border-radius:7px;background:#e9f3f1;color:#0f766e;font-weight:700;font-size:17px}
.users-header-divider{height:20px;width:1px;background:var(--line);margin:0 3px}
.users-brand strong{font-weight:600}
.users-header .actions a{font-size:13px;text-decoration:none}
.users-header .actions button{padding:6px 12px;font-size:13px}
.users-wrap{max-width:1300px;margin:auto;padding:38px 28px 64px}
.users-page-heading{display:flex;justify-content:space-between;align-items:end;gap:20px;margin-bottom:20px}
.users-page-heading h1{font-size:22px;line-height:1.3;margin:0 0 6px}
.users-page-heading p,.users-panel .panel-heading p,.add-user-content>p,.add-dept-content>p{margin:0;color:var(--muted);font-size:13px}
.users-page-heading nav{display:flex;gap:8px;flex-wrap:wrap}
.users-page-heading nav a{border:1px solid var(--line);border-radius:7px;background:#fff;padding:6px 11px;color:var(--ink);font-size:13px;text-decoration:none}
.users-page-heading nav a:hover{background:var(--soft);border-color:#cfe4df}
.users-notice{padding:10px 14px;border:1px solid #cfe4df;border-radius:8px;background:#eef7f5;color:#345f59;font-size:12.5px}
.users-page #status{position:sticky;top:0;z-index:5;min-height:0;padding:8px 2px;background:#f4f5f8;color:var(--muted);font-size:12px;white-space:pre-wrap}
.users-page #status[data-error=true]{color:#a52c27}
.users-panel{margin:0 0 16px;padding:22px 24px;background:white;border:1px solid var(--line);border-radius:10px}
.users-panel .panel-heading{display:flex;align-items:start;justify-content:space-between;gap:16px;margin-bottom:18px}
.users-panel h2{font-size:16px;line-height:1.4;margin:0 0 5px}
.count-badge{display:inline-block;margin-left:6px;color:var(--muted);font-size:12px;font-weight:400}
.fixed-badge{font-size:12px;color:#49665f;background:#edf5f3;border:1px solid #d3e9e3;border-radius:20px;padding:3px 9px;white-space:nowrap}
.bootstrap-panel{padding:18px 24px}.bootstrap-panel .panel-heading{margin-bottom:10px}
.bootstrap-list{display:flex;flex-wrap:wrap;gap:8px 22px}
.bootstrap-person{display:flex;align-items:baseline;gap:9px;min-width:0;font-size:13px}.bootstrap-person span{color:var(--muted);font-size:12px;overflow-wrap:anywhere}
.user-toolbar{display:flex;align-items:center;justify-content:space-between;gap:12px;margin:0 0 14px}
.filter-field{width:min(360px,100%)}.filter-field input{width:100%}
.disabled-filter{font-size:13px;white-space:nowrap;color:#46505e}
.users-page .table-wrap{border:1px solid var(--line);border-radius:8px}.users-page .user-table{max-height:650px}.users-page .user-table th{position:sticky;top:0;z-index:1}
.users-page table{font-size:13px}.users-page th,.users-page td{padding:12px 11px;white-space:normal;vertical-align:middle}.users-page th{font-size:12px;color:#596371;font-weight:600;white-space:nowrap}
.users-page .center{text-align:center}
.users-page tbody tr:hover{background:#fafbfc}.user-name strong,.user-name small{display:block}.user-name strong{font-weight:600}.user-name small{font-size:11.5px;overflow-wrap:anywhere}
.user-department{min-width:150px;color:#46505e}.users-page td select{min-width:100px}.users-page td input{width:150px;min-width:110px;max-width:100%}
.status-badge{display:inline-block;border-radius:20px;padding:2px 9px;font-size:12px;white-space:nowrap}.status-badge.active{color:#27675a;background:#eaf5f1}.status-badge.inactive{color:#626b76;background:#eef0f2}
.user-actions,.dept-actions,.search-result-actions{display:flex;align-items:center;gap:6px;flex-wrap:wrap}.users-page td button,.users-page .dept-actions button{margin:0;padding:5px 9px;font-size:12px;white-space:nowrap}.actions-cell{min-width:190px}.users-page .danger{color:#a52c27}
.empty-state{margin:0;color:var(--muted);font-size:13px;padding:18px 12px;background:#f8f9fa;border-radius:7px}
.users-page [hidden]{display:none!important}
.add-user{margin:0 0 16px;border-bottom:1px solid var(--line);padding:0 0 16px}.add-dept{margin-top:18px;border-top:1px solid var(--line);padding-top:16px}
.add-user summary,.add-dept summary{display:inline-block;cursor:pointer;color:var(--teal);font-weight:600;font-size:13px;list-style:none}.add-user summary::-webkit-details-marker,.add-dept summary::-webkit-details-marker{display:none}
.add-user summary::before,.add-dept summary::before{content:'+';font-size:17px;line-height:1;margin-right:7px}.add-user[open] summary::before,.add-dept[open] summary::before{content:'−'}
.add-user-content,.add-dept-content{padding-top:12px}.add-user-content>p,.add-dept-content>p{margin-bottom:12px}
.add-user .field{width:min(340px,100%)}.add-user .field input{width:100%}
.users-page .results{padding:0}.search-result,.dept-item{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:12px 0;border-bottom:1px solid var(--line)}
.search-result-info,.dept-info{display:flex;flex-direction:column;min-width:0;gap:2px}.search-result-info span,.dept-info span{font-size:12px;color:var(--muted);overflow-wrap:anywhere}.search-result-actions input{width:150px}.search-result-actions button{white-space:nowrap}
.dept-item:first-child{border-top:1px solid var(--line)}.dept-add-row{margin-top:16px}.dept-add-row .field{max-width:340px}
.users-page #tree{max-height:300px;overflow:auto;margin-top:10px}.users-page #tree:empty{display:none}.users-page #tree ul{margin:4px 0;padding-left:20px;list-style:none}.users-page #tree>ul{padding-left:0}.tree-row{display:flex;align-items:center;gap:12px;padding:5px 0}.tree-row label{flex:1}.tree-row button{font-size:12px;padding:4px 8px}
.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}
@media(max-width:800px){.users-page .users-header{padding:12px 18px}.users-wrap{padding:26px 16px 48px}.users-panel{padding:18px}.users-page-heading{align-items:start;flex-direction:column;gap:12px}.user-toolbar{align-items:start;flex-direction:column}.filter-field{width:100%}.search-result,.dept-item{align-items:start;flex-direction:column}.search-result-actions{width:100%}}
@media(max-width:600px){.users-page .user-table{max-height:none}.users-brand{gap:8px}.users-brand>span:nth-child(2),.users-header-divider{display:none}.users-page .users-header{align-items:center}.users-page .actions{gap:8px}.users-page-heading h1{font-size:20px}.users-page table,.users-page tbody,.users-page tr,.users-page td{display:block}.users-page thead{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0,0,0,0)}.users-page tbody tr{padding:12px;border-bottom:1px solid var(--line)}.users-page tbody tr:last-child{border-bottom:0}.users-page td{display:flex;align-items:center;justify-content:space-between;gap:12px;border:0;padding:5px 0;text-align:left!important}.users-page td::before{content:attr(data-label);color:var(--muted);font-size:12px;flex:none}.users-page td:first-child{align-items:start}.users-page td:first-child::before{padding-top:2px}.users-page .user-name{text-align:right;min-width:0}.users-page td input{width:min(200px,65%)}.users-page .actions-cell{min-width:0;align-items:start}.users-page .actions-cell::before{padding-top:5px}.user-actions{justify-content:flex-end}.user-department{text-align:right!important}.search-result-actions input{flex:1;min-width:110px}.bootstrap-person{flex-wrap:wrap;gap:2px 8px}}

/* 用户管理 C2：仅作用于管理页面；认证与登录页保持原样。 */
.users-page{--ink:#31483c;--muted:#819084;--line:#e8ede6;--teal:#176b55;--soft:#e8f0e9;--bg:#f6f5f1;background:var(--bg);color:var(--ink);font:13px/1.6 Inter,"Noto Sans CJK SC","PingFang SC","Microsoft YaHei",system-ui,sans-serif;-webkit-font-smoothing:antialiased;font-variant-numeric:tabular-nums}
.users-page :is(button,input,select){font-family:inherit}
.users-page .users-shell{display:grid;grid-template-columns:218px minmax(0,1fr);max-width:1900px;margin:auto;gap:22px;padding:17px 23px 50px 18px}
.users-page .users-side{position:sticky;top:17px;height:calc(100vh - 34px);min-height:570px;padding:17px 12px 13px;display:flex;flex-direction:column;overflow:hidden;background:rgba(255,255,252,.97);border:1px solid rgba(227,233,225,.65);border-radius:23px;box-shadow:0 12px 38px rgba(39,58,47,.06)}
.users-page .users-brand{gap:10px;padding:3px 10px 17px;font-size:15px;font-weight:700;color:#1d4034}.users-page .users-brand-mark{width:26px;height:26px;border-radius:8px;background:#176a55;color:#fff;font-size:17px}
.users-page .users-nav{flex:1;min-height:0;overflow-y:auto;scrollbar-width:thin;scrollbar-color:#c7d2c7 transparent}.users-page .users-nav-group+.users-nav-group{border-top:1px solid #edf0e9;margin:14px 9px 0;padding-top:1px}.users-page .users-nav-title{font-size:10px;color:#9fa99f;margin:15px 11px 6px}.users-page .users-nav :is(a,.users-nav-label,.users-nav-current){display:flex;align-items:center;gap:10px;height:35px;padding:0 11px;border-radius:10px;color:#78887c;font-size:12px;text-decoration:none;white-space:nowrap}.users-page .users-nav a:hover{background:#f0f4ed}.users-page .users-nav-current{background:#e6f0e9;color:#155f4d!important;font-weight:660}.users-page .users-sidefoot{border-top:1px solid #eef0e9;padding:10px 10px 1px;color:#9da89e;font-size:10px;line-height:1.7}
.users-page .users-wrap{max-width:none;width:auto;min-width:0;margin:0;padding:5px 0 20px}.users-page .users-header{display:flex;align-items:flex-start;justify-content:space-between;flex-wrap:wrap;gap:16px;margin:0 0 19px;padding:0;min-height:0;border:0;background:transparent}.users-page .users-eyebrow{font-size:9px;letter-spacing:1.8px;font-weight:700;color:#6f9986;margin-bottom:5px}.users-page .users-page-heading h1{margin:0;font-size:27px;line-height:1.25;font-weight:700;letter-spacing:-.55px;color:#1e3f34}.users-page .users-page-heading p{margin:7px 0 0;color:#93a196;font-size:11px}.users-page .users-header .actions{gap:8px}.users-page .users-header .actions a,.users-page .users-header .actions button{border:1px solid #e3ebe3;border-radius:10px;padding:9px 13px;background:#fffefa;color:#426a55;font-size:11px;font-weight:600;text-decoration:none}.users-page .users-header .actions button{border-color:transparent;background:transparent;color:#6c8175}
.users-page .users-notice{display:flex;align-items:center;gap:12px;padding:12px 16px;border:1px solid #e1ebe2;border-radius:13px;background:#eaf2ea;color:#79927e;font-size:10.5px}.users-page .users-notice strong{color:#416a52;font-size:12px;font-weight:650}.users-page .users-notice-icon{display:grid;place-items:center;width:28px;height:28px;border-radius:9px;background:#d9e9dc;color:#17664f;font-size:15px}.users-page .users-notice-tag{margin-left:auto;white-space:nowrap;color:#277159;font-size:10.5px}.users-page #status{position:static;min-height:0;padding:5px 2px;background:transparent;font-size:10.5px;color:#819084}.users-page #status[data-error=true],.users-page .users-dialog-status[data-error=true]{color:#a52c27}
.users-page .users-section{margin:18px 0 23px}.users-page .users-section-heading{display:flex;align-items:baseline;justify-content:space-between;gap:12px;flex-wrap:wrap;margin:0 2px 11px}.users-page .users-section-heading h2{border-left:3px solid #21816b;padding-left:10px;margin:0;color:#204437;font-size:17px;font-weight:680;line-height:1.35}.users-page .users-section-heading>span{color:#96a39a;font-size:10.5px}.users-page .users-panel{margin:0;padding:21px 22px;background:#fffefa;border:1px solid #e8ede6;border-radius:18px;box-shadow:0 8px 31px rgba(37,51,40,.035)}.users-page .users-panel .panel-heading{display:flex;align-items:flex-start;justify-content:space-between;gap:16px;margin:0 0 16px}.users-page .users-panel h3{margin:0;color:#2b5140;font-size:15px;font-weight:700}.users-page .users-panel .panel-heading p{font-size:11px;color:#8f9f92;margin-top:3px}.users-page .count-badge{font-size:11px;color:#8fa094;font-weight:450}.users-page .fixed-badge{border:0;border-radius:99px;background:#e9f2e9;color:#277159;font-size:10.5px;padding:4px 10px}
.users-page .bootstrap-panel{display:flex;align-items:center;gap:16px;padding:18px 20px}.users-page .users-admin-icon{display:grid;place-items:center;width:42px;height:42px;flex:none;background:#eaf2e9;border:1px solid #e2ece3;border-radius:12px;font-size:19px;color:#165f4d}.users-page .users-admin-content{flex:1;min-width:0}.users-page .users-admin-content>strong{font-size:14px;font-weight:690;color:#274c3b}.users-page .users-admin-content p{margin:3px 0 0;font-size:11px;color:#839589}.users-page .bootstrap-person{font-size:11px}.users-page .bootstrap-person span{font-size:11px;color:#839589}
.users-page :is(button,.button){border:1px solid #e3ebe3;background:#fffefa;color:#426a55;border-radius:10px;padding:9px 13px;font-size:11px;font-weight:600}.users-page .primary{background:#176b55;border-color:#176b55;color:#fff}.users-page .primary:hover{background:#125e4b}.users-page :is(input,select){min-height:36px;border:1px solid #e3eae2;background:#fffefa;border-radius:10px;padding:0 12px;color:#45604f;font-size:11.5px}.users-page input::placeholder{color:#a2aca2}.users-page input[type=checkbox]{min-height:13px;height:13px;width:13px;padding:0;accent-color:#165f4d}.users-page :is(button,input,select,a,summary):focus-visible{outline:2px solid #21816b;outline-offset:2px}
.users-page .users-user-panel{padding:0;overflow:hidden}.users-page .users-user-panel .panel-heading{padding:20px 22px 0}.users-page .user-toolbar{margin:0;padding:0 22px 16px;align-items:center;flex-direction:row}.users-page .filter-field{width:min(380px,100%)}.users-page .disabled-filter{font-size:10.5px;color:#87988b}.users-page .user-table{max-height:560px;border:0;border-radius:0;overflow:auto;scrollbar-width:thin;scrollbar-color:#cdd9cd transparent}.users-page table{min-width:1050px;font-size:11.5px;line-height:1.6}.users-page th,.users-page td{padding:12px 14px;border-bottom:1px solid #eef1ea;color:#566b5a;vertical-align:middle}.users-page th{background:#f7f8f4;color:#8c9a8e;font-size:10.5px;font-weight:530;white-space:nowrap}.users-page tbody tr:hover{background:#fcfdf9}.users-page .user-name strong{font-size:12px;color:#345441;font-weight:640}.users-page .user-name small{font-size:10px;color:#a0ada2}.users-page .user-department{min-width:150px;color:#566b5a}.users-page td select{min-width:115px;height:31px;min-height:31px;border-radius:9px;padding:0 9px;font-size:11px}.users-page td input{width:148px;height:30px;min-height:30px;border-radius:8px;padding:0 9px;font-size:11px}.users-page .status-badge{padding:4px 10px;font-size:10.5px;font-weight:570}.users-page .status-badge.active{background:#e9f2e9;color:#277159}.users-page .status-badge.inactive{background:#f0f2ed;color:#7d8a7d}.users-page td button,.users-page .dept-actions button{border-radius:8px;padding:6px 9px;color:#63816b;font-size:10.5px}.users-page .danger{color:#ae7369!important;border-color:#f0e8e3!important;background:#fffaf9!important}.users-page .actions-cell{min-width:190px}.users-page .users-table-end{padding:12px 21px;color:#94a297;font-size:10.5px;border-top:1px solid #eaf0e9}.users-page .empty-state{padding:30px 22px 32px;text-align:center;border-radius:12px;background:#f8faf6;color:#899a8d;font-size:11px}
.users-page .dept-item,.users-page .search-result{border-color:#eef1ea}.users-page .dept-info span,.users-page .search-result-info span{font-size:11px;color:#839589}.users-page .users-dialog{width:min(470px,calc(100% - 32px));max-height:min(85vh,900px);overflow:auto;padding:23px;background:#fffefa;border:1px solid #e3eee3;border-radius:20px;box-shadow:0 18px 55px #1733272b;color:#31483c}.users-page .users-dialog::backdrop{background:rgba(25,43,31,.26)}.users-page .users-dialog-head{display:flex;justify-content:space-between;align-items:center}.users-page .users-dialog-head h3{font-size:17px;color:#28513b;margin:0}.users-page .users-dialog-head button{padding:3px 7px;border:0;background:transparent;font-size:16px}.users-page .users-dialog>p{font-size:11px;color:#8f9f92;margin:12px 0}.users-page .users-dialog .field{flex:1;min-width:0;font-size:11px;color:#708773}.users-page .users-dialog .field input{width:100%}.users-page .users-dialog-actions{display:flex;justify-content:flex-end;gap:9px;margin-top:20px}.users-page .users-dialog-status{white-space:pre-wrap;color:#819084;font-size:11px;margin-top:8px}.users-page .users-dialog-status:empty{display:none}.users-page .search-result{align-items:flex-start;flex-direction:column}.users-page .search-result-actions{width:100%}.users-page #tree{max-height:260px;overflow:auto}.users-page .users-confirm p{font-size:12px;line-height:1.7;color:#45604f}
@media(max-width:1380px){.users-page .users-shell{grid-template-columns:198px minmax(0,1fr);gap:17px;padding:14px 16px 45px}.users-page table{min-width:975px}.users-page th,.users-page td{padding-left:9px;padding-right:9px}.users-page td select{min-width:101px}.users-page td input{width:116px}.users-page td button{padding:6px 8px}}
@media(max-width:1100px){.users-page .users-shell{grid-template-columns:175px minmax(0,1fr);gap:12px}.users-page .bootstrap-panel{flex-wrap:wrap}}
@media(max-width:760px){.users-page .users-shell{display:block;padding:12px}.users-page .users-side{position:relative;height:auto;min-height:0;max-height:260px;margin-bottom:16px}.users-page .users-nav{max-height:120px}.users-page .users-sidefoot{display:none}.users-page .users-header{align-items:flex-start}.users-page .users-user-panel .user-toolbar{align-items:flex-start;flex-wrap:wrap}.users-page .users-notice{align-items:flex-start}.users-page .users-dialog .field{width:auto}}

/* Match the dashboard's floating navigation without changing admin controls. */
@media(min-width:769px){
  .users-page .users-shell{grid-template-columns:208px minmax(0,1fr);padding-left:16px}
  .users-page .users-side{top:16px;height:calc(100vh - 32px);min-height:0;padding:17px 16px 20px;background:#fffefa;border:0;border-radius:20px;box-shadow:0 8px 28px rgba(35,49,42,.035)}
  .users-page .users-brand{padding:11px 0 25px;font-size:18px;font-weight:800;letter-spacing:-.4px;color:#272f2d}
  .users-page .users-brand-mark{width:28px;height:28px;background:#1d6357;font-size:18px}
  .users-page .users-nav{scrollbar-color:#c9cdc1 transparent}
  .users-page .users-nav-group+.users-nav-group{border:0;margin:26px 0 0;padding:0}
  .users-page .users-nav-title{margin:0;padding:0 12px 8px;font-size:11px;font-weight:600;line-height:1.5;letter-spacing:1.1px;color:#989b91}
  .users-page .users-nav :is(a,.users-nav-label,.users-nav-current){height:39px;padding:0 12px;border:1px solid transparent;border-radius:12px;font-size:13px;font-weight:500;line-height:1.5;color:#5b6761}
  .users-page .users-nav-current{background:#e8efe9;border-color:#dbe5db;color:#1d6357!important;font-weight:700!important}
}
