:root{font-family:Inter,"PingFang SC","Microsoft YaHei",system-ui,sans-serif;color:#172033;background:#f4f7fb;font-synthesis:none}*{box-sizing:border-box}body{margin:0;min-height:100vh}button,input,textarea,select{font:inherit}button{cursor:pointer}.hidden{display:none!important}.muted{color:#69758b}.small{font-size:13px}.center{text-align:center}.row{display:flex;align-items:center;gap:10px}.row.wrap{flex-wrap:wrap}.row.between{justify-content:space-between}.grid{display:grid;gap:16px}.grid.two{grid-template-columns:repeat(2,minmax(0,1fr))}.grid.three{grid-template-columns:repeat(3,minmax(0,1fr))}.full{width:100%}.auth-page{min-height:100vh;display:grid;place-items:center;padding:28px;background:radial-gradient(circle at top,#e8f0ff 0,#f4f7fb 45%)}.auth-card{width:min(460px,100%);background:#fff;border:1px solid #e2e8f2;border-radius:22px;padding:30px;box-shadow:0 24px 70px rgba(29,52,89,.12)}.brand-mark{width:52px;height:52px;border-radius:16px;background:#155eef;color:#fff;display:grid;place-items:center;font-weight:900;font-size:26px;margin:0 auto 12px}.small-mark{width:36px;height:36px;border-radius:11px;font-size:18px;margin:0;flex:0 0 auto}.auth-card h1,.auth-card h2{text-align:center;margin:8px 0}.step-indicator{display:flex;align-items:center;justify-content:center;margin:22px 0}.step-indicator span{width:30px;height:30px;border-radius:50%;display:grid;place-items:center;background:#e8edf5;color:#69758b;font-weight:800}.step-indicator span.active,.step-indicator span.done{background:#155eef;color:#fff}.step-indicator i{width:48px;height:3px;background:#e8edf5}.step-indicator i.done{background:#155eef}label{display:grid;gap:7px;font-weight:650;margin:14px 0}input,textarea,select{width:100%;border:1px solid #cfd7e5;border-radius:10px;padding:11px 12px;background:#fff;color:#172033;outline:none}input:focus,textarea:focus,select:focus{border-color:#155eef;box-shadow:0 0 0 3px rgba(21,94,239,.12)}textarea{resize:vertical}button,.file-button{border:0;border-radius:10px;padding:10px 14px;background:#155eef;color:#fff;font-weight:750;display:inline-flex;align-items:center;justify-content:center;gap:6px}.secondary{background:#e9eff9;color:#253a62}.danger{background:#c73a31}.link-button{background:transparent;color:#155eef;padding:8px 0}.file-button{position:relative;background:#e9eff9;color:#253a62}.file-button input{position:absolute;inset:0;opacity:0;cursor:pointer}.alert{padding:11px 13px;border-radius:10px;margin:12px 0}.alert.warning{background:#fff2ce;color:#6c5100}.toast{position:fixed;z-index:1000;top:18px;left:50%;transform:translateX(-50%);max-width:min(580px,90vw);padding:12px 18px;border-radius:12px;background:#1f2a3d;color:#fff;box-shadow:0 12px 34px rgba(0,0,0,.22)}.toast.success{background:#18794e}.toast.error{background:#b42318}.app-shell{display:flex;min-height:100vh}.sidebar{width:246px;background:#111827;color:#e5e7eb;display:flex;flex-direction:column;padding:18px 14px;position:fixed;inset:0 auto 0 0;z-index:40}.sidebar-brand{display:flex;align-items:center;gap:10px;padding:8px 8px 20px}.sidebar-brand small{display:block;color:#9ca3af;margin-top:3px}.sidebar nav{display:grid;gap:5px}.nav-item{width:100%;justify-content:flex-start;background:transparent;color:#cbd5e1;padding:11px 12px}.nav-item:hover,.nav-item.active{background:#263246;color:#fff}.nav-item span{width:22px;text-align:center}.sidebar-footer{margin-top:auto;border-top:1px solid #2d3748;padding-top:14px}.email-cut{font-size:13px;color:#aeb9c9;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;margin-bottom:10px}.app-main{margin-left:246px;width:calc(100% - 246px);min-width:0}.mobile-topbar{display:none}.content{padding:28px;max-width:1500px;margin:0 auto}.page{display:none}.page.active{display:block}.page-heading{display:flex;justify-content:space-between;align-items:center;gap:16px;margin-bottom:20px}.page-heading h1{margin:0 0 4px}.page-heading p{margin:0}.card{background:#fff;border:1px solid #e1e7f0;border-radius:16px;padding:20px;box-shadow:0 7px 24px rgba(30,50,80,.05);margin-bottom:18px}.card h2{margin-top:0}.stats-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px;margin-bottom:18px}.stat-card{background:#fff;border:1px solid #e1e7f0;border-radius:16px;padding:20px}.stat-card strong{display:block;font-size:30px;margin-top:8px}.toolbar{margin-bottom:14px}.code-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:14px}.code-card{background:#fff;border:1px solid #dde4ef;border-radius:15px;padding:16px;position:relative}.code-title{font-weight:850;font-size:18px}.code-account{color:#69758b;overflow-wrap:anywhere;margin-top:3px}.code-value{font-size:32px;font-weight:900;letter-spacing:5px;font-variant-numeric:tabular-nums;margin:15px 0 10px}.code-meta{font-size:12px;color:#7b879b}.countdown{height:5px;border-radius:999px;background:#e8edf5;overflow:hidden;margin:10px 0}.countdown span{display:block;height:100%;background:#155eef;transition:width 1s linear}.copy-code{position:absolute;right:12px;bottom:12px;padding:7px 10px}.empty{border:1px dashed #bdc8d9;border-radius:14px;text-align:center;padding:34px;color:#6f7b8f;background:#fff}.split-layout{display:grid;grid-template-columns:minmax(340px,440px) minmax(0,1fr);gap:18px;align-items:start}.form-card{position:sticky;top:20px}.management-list{display:grid;gap:10px;margin-top:14px}.management-item{border:1px solid #e0e6ef;border-radius:12px;padding:12px;display:flex;justify-content:space-between;align-items:center;gap:14px}.management-main{min-width:0}.management-main strong{display:block}.management-main small{display:block;color:#6f7b8f;margin-top:4px;overflow-wrap:anywhere}.management-actions{display:flex;gap:7px;flex-wrap:wrap;justify-content:flex-end}.management-actions button{padding:7px 10px}.badge{display:inline-flex;border-radius:999px;padding:3px 8px;font-size:12px;font-weight:750;background:#e9eff9;color:#28416c;margin-left:6px}.badge.off{background:#fee7e7;color:#9d2525}.badge.admin{background:#fff0d5;color:#795100}.badge.super{background:#e9e1ff;color:#5337a6}.qr-video{width:100%;max-height:290px;border-radius:12px;background:#111;margin-top:12px}.check-row{display:flex;align-items:center;gap:9px}.check-row input{width:auto}.inline-form{display:flex;gap:10px;align-items:end}.inline-form input{flex:1}.settings-card{max-width:900px}.icon-button{background:transparent;color:#172033;padding:8px;font-size:22px}.mobile-topbar{height:58px;background:#fff;border-bottom:1px solid #e1e7f0;align-items:center;justify-content:space-between;padding:0 14px;position:sticky;top:0;z-index:30}@media(max-width:1000px){.split-layout{grid-template-columns:1fr}.form-card{position:static}.stats-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}@media(max-width:760px){.sidebar{transform:translateX(-100%);transition:transform .2s ease}.sidebar.open{transform:translateX(0)}.app-main{margin-left:0;width:100%}.mobile-topbar{display:flex}.content{padding:18px}.grid.two,.grid.three,.stats-grid{grid-template-columns:1fr}.page-heading{align-items:flex-start}.inline-form{display:grid}.code-value{font-size:28px;letter-spacing:3px}.management-item{align-items:flex-start;flex-direction:column}.management-actions{justify-content:flex-start}}@media(prefers-color-scheme:dark){:root{color:#e7edf8;background:#0f1521}.auth-page{background:#0f1521}.auth-card,.card,.stat-card,.code-card,.empty,.mobile-topbar{background:#171e2b;border-color:#303a4d}.auth-card{box-shadow:none}input,textarea,select{background:#101722;color:#e7edf8;border-color:#44506a}.muted,.code-account,.code-meta,.management-main small{color:#aab6c9}.secondary,.file-button{background:#2a3549;color:#e7edf8}.countdown{background:#303a4d}.icon-button{color:#e7edf8}}
.code-value.masked{letter-spacing:4px;color:#526078}.code-actions{margin-top:12px}.code-notes{margin-top:12px;padding-top:10px;border-top:1px dashed #d7deea;color:#69758b;font-size:13px;white-space:pre-wrap}.table-wrap{overflow:auto;margin-top:8px}.audit-table{width:100%;border-collapse:collapse;min-width:1050px}.audit-table th,.audit-table td{padding:11px 10px;border-bottom:1px solid #e1e7f0;text-align:left;vertical-align:top;font-size:13px}.audit-table th{white-space:nowrap;background:#f7f9fc;position:sticky;top:0}.audit-table td{overflow-wrap:anywhere}.ua-cell{max-width:280px;color:#69758b}.empty-cell{text-align:center!important;padding:28px!important;color:#69758b}.filter-action{display:flex;align-items:flex-end;padding-bottom:14px}.container{max-width:1080px;margin:0 auto;padding:28px}.container.narrow{max-width:620px}.button{display:inline-flex;border-radius:10px;padding:10px 14px;background:#155eef;color:#fff;text-decoration:none;font-weight:750}.alert.error{background:#fee7e7;color:#9d2525}.alert.success{background:#dff6e9;color:#18794e}code{background:#edf1f7;border-radius:5px;padding:2px 5px}@media(prefers-color-scheme:dark){.audit-table th{background:#202938}.audit-table th,.audit-table td{border-color:#303a4d}.code-value.masked{color:#aab6c9}.code-notes{border-color:#303a4d;color:#aab6c9}code{background:#263246}}
.modal-backdrop{position:fixed;inset:0;z-index:900;background:rgba(10,18,32,.62);display:grid;place-items:center;padding:20px}.modal-card{width:min(430px,100%);background:#fff;border-radius:18px;padding:24px;box-shadow:0 25px 70px rgba(0,0,0,.32)}.modal-card h2{margin-top:0}.modal-card .code-value{font-size:38px}@media(prefers-color-scheme:dark){.modal-card{background:#171e2b}}
.assignment-fieldset{border:1px solid #dbe3ef;border-radius:12px;padding:14px;margin:14px 0}.assignment-fieldset legend{font-weight:800;padding:0 6px}.check-list{display:grid;gap:6px;margin-top:9px;max-height:210px;overflow:auto;border:1px solid #e0e6ef;border-radius:10px;padding:8px;background:#f9fbfe}.check-list.tall{max-height:330px}.check-option{display:flex;align-items:flex-start;gap:8px;margin:0;padding:7px 8px;border-radius:8px;font-weight:500}.check-option:hover{background:#edf3fd}.check-option input{width:auto;margin-top:2px;flex:0 0 auto}.check-option span{overflow-wrap:anywhere}.alert.info{background:#eaf2ff;color:#254a80}.management-main{max-width:100%}@media(prefers-color-scheme:dark){.assignment-fieldset,.check-list{border-color:#303a4d}.check-list{background:#111927}.check-option:hover{background:#253148}.alert.info{background:#1d3152;color:#c7dcff}}
.import-help p{margin:7px 0}.bulk-import-panel{border:1px solid #cfdced;background:#f8fbff;border-radius:12px;padding:14px;margin:14px 0}.import-preview-list{display:grid;gap:8px;max-height:310px;overflow:auto;margin-top:12px}.import-preview-item{display:flex;align-items:flex-start;justify-content:space-between;gap:12px;border:1px solid #dce5f1;background:#fff;border-radius:10px;padding:10px}.import-preview-main{min-width:0}.import-preview-main strong,.import-preview-main small{display:block;overflow-wrap:anywhere}.import-preview-main small{color:#69758b;margin-top:3px}.import-preview-actions{display:flex;align-items:center;gap:8px}.import-preview-actions input{width:auto}.import-preview-actions button{padding:6px 9px}.import-warning{color:#8a5b00}@media(prefers-color-scheme:dark){.bulk-import-panel{background:#111927;border-color:#303a4d}.import-preview-item{background:#171e2b;border-color:#303a4d}.import-preview-main small{color:#aab6c9}.import-warning{color:#ffd37a}}

/* v7 */
.auth-switch-row{margin-top:8px;align-items:center}.auth-switch-row .link-button{font-size:14px}.modal-wide{width:min(980px,100%);max-height:92vh;overflow:auto}.code-editor-card{padding:22px}.modal-heading{align-items:flex-start;border-bottom:1px solid #e4e9f1;padding-bottom:12px;margin-bottom:14px}.modal-heading h2{margin:0 0 3px}.modal-heading p{margin:0}.modal-actions{position:sticky;bottom:-22px;background:#fff;border-top:1px solid #e4e9f1;padding:14px 0 2px;margin-top:14px}.modal-open{overflow:hidden}.import-details{border:1px solid #dce4ef;border-radius:12px;padding:12px;margin:14px 0}.import-details summary{cursor:pointer;font-weight:800}.import-details[open] summary{margin-bottom:10px}.list-card{width:100%}.settings-card+ .settings-card{margin-top:0}@media(prefers-color-scheme:dark){.modal-heading,.modal-actions{border-color:#303a4d}.modal-actions{background:#171e2b}.import-details{border-color:#3b465a}}

/* v8 */
.text-danger{color:#b42318!important}hr{border:0;border-top:1px solid #e1e7f0;margin:22px 0}.management-item:target{outline:3px solid rgba(21,94,239,.22)}@media(prefers-color-scheme:dark){hr{border-color:#303a4d}.text-danger{color:#ff9b94!important}}

/* V10 DingTalk enterprise login */
.ding-login-page{min-height:100vh;display:grid;place-items:center;padding:24px}
.ding-login-card{width:min(620px,100%);padding:28px}
.ding-login-status{margin:18px 0}
.ding-login-actions{display:flex;gap:10px;flex-wrap:wrap}
.ding-login-hidden{display:none!important}
.department-map-main{display:flex;gap:8px;align-items:center;flex:1}
.department-map-children{display:flex;align-items:center;gap:4px}

.force-hidden{display:none!important}.org-scope-actions{margin:.75rem 0}.org-scope-controls{display:flex;gap:.75rem;align-items:center;flex-wrap:wrap;margin-top:.45rem}.org-scope-badge{font-size:.8rem;padding:.15rem .45rem;border-radius:999px;background:var(--surface-soft,#eef2f7)}.org-scope-inherited{opacity:.78}

/* V10.3.2 manual-member + QR scanner */
.qr-import-actions{align-items:stretch}.qr-import-actions>button,.qr-import-actions>.file-button{min-height:42px}.mobile-capture-button{display:none}.manual-mobile-label{flex:1;min-width:260px;margin:0}.org-scope-item .management-actions{align-self:center}.org-scope-item .check-row{margin:8px 0 0}.badge+.badge{margin-left:5px}
@media(max-width:760px){.mobile-capture-button{display:inline-flex}.qr-import-actions>button,.qr-import-actions>.file-button{width:100%}.manual-mobile-label{min-width:0;width:100%}.org-scope-item .management-actions{width:100%}.org-scope-item .management-actions button{width:100%}}

/* V10.3.4 assignment member search + DingTalk assistant */
.assignment-search-label{display:block;margin-top:8px}.assignment-search{width:100%;margin:0}.check-option .assignment-user-meta{display:block;font-size:.82rem;color:#6b778c;margin-top:2px}.check-option.assignment-history{opacity:.72}.check-option.assignment-history input{cursor:not-allowed}.approval-assistant-actions{margin-top:14px;align-items:center}.approval-assistant-actions .small{max-width:720px}
@media(prefers-color-scheme:dark){.check-option .assignment-user-meta{color:#aab6c9}}
/* V10.3.6 */
.version-label{font-size:11px!important;opacity:.8;letter-spacing:.03em}.identity-card strong{display:block;font-size:20px;margin-top:4px}.identity-card p{margin-bottom:0}.org-user-assignment{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:10px}.org-user-main{display:flex;align-items:flex-start;gap:8px;margin:0;font-weight:500;min-width:0}.org-user-main input{width:auto;flex:0 0 auto;margin-top:2px}.per-user-approval{display:flex;align-items:center;gap:6px;margin:0;font-size:12px;font-weight:650;white-space:nowrap;color:#4b5e7d}.per-user-approval input{width:auto;margin:0}.department-picker{max-height:260px}.department-picker .check-option{font-weight:500}@media(max-width:760px){.org-user-assignment{grid-template-columns:1fr}.per-user-approval{padding-left:28px}}@media(prefers-color-scheme:dark){.per-user-approval{color:#b8c5da}}

/* V10.3.8 首页快捷卡片与手机导航收起 */
.stat-card-link{appearance:none;width:100%;text-align:left;color:inherit;background:#fff;border:1px solid #e1e7f0;border-radius:16px;padding:20px;display:block;transition:transform .15s ease,border-color .15s ease,box-shadow .15s ease}.stat-card-link:hover{transform:translateY(-1px);border-color:#aebfe0;box-shadow:0 10px 26px rgba(30,50,80,.08)}.stat-card-link:focus-visible{outline:3px solid rgba(21,94,239,.22);outline-offset:2px}.stat-card-link.pending-stat{border-width:2px}.stat-link-hint{display:block;margin-top:8px;font-size:12px;color:#69758b;font-weight:650}.mobile-nav-close{display:none;margin:12px 0 8px}.sidebar .mobile-nav-close{flex:0 0 auto}@media(max-width:760px){.mobile-nav-close{display:flex}}@media(prefers-color-scheme:dark){.stat-card-link{background:#171e2b;border-color:#303a4d;color:#e7edf8}.stat-card-link:hover{border-color:#51627f}.stat-link-hint{color:#aab6c9}}

/* V10.3.8 全站部门彩色标签 */
.department-badge-list{display:inline-flex;flex-wrap:wrap;align-items:center;gap:5px;vertical-align:middle}.department-badge{display:inline-flex;align-items:center;max-width:100%;padding:2px 8px;border-radius:999px;font-size:.88em;font-weight:750;line-height:1.45;vertical-align:middle;white-space:normal;overflow-wrap:anywhere;border:1px solid transparent}.department-color-0{background:#e8f1ff;color:#174a8b;border-color:#bed4f5}.department-color-1{background:#e8f8ef;color:#17663d;border-color:#bfe5ce}.department-color-2{background:#fff3df;color:#8a4c08;border-color:#f2d19a}.department-color-3{background:#f3ebff;color:#65409a;border-color:#d9c4f5}.department-color-4{background:#ffecef;color:#97384b;border-color:#f3c3cd}.department-color-5{background:#e7f8f8;color:#17656a;border-color:#b8e1e3}.department-color-6{background:#f3f5d9;color:#626b13;border-color:#dce2a5}.department-color-7{background:#fceee3;color:#8a4a1e;border-color:#efd0b7}.department-color-8{background:#e9eefc;color:#394f98;border-color:#c7d1f0}.department-color-9{background:#eef0f3;color:#485568;border-color:#d2d7de}.assignment-user-meta .department-badge,.management-main small .department-badge{font-size:.92em}.department-map-main .department-badge,.org-scope-item strong .department-badge{font-size:.95em}.sidebar .department-badge{font-size:10px;padding:1px 6px}.identity-card .department-badge{font-size:13px}.department-badge+.department-badge{margin-left:0}@media(max-width:760px){.department-badge{padding:2px 7px;font-size:.82em}.department-badge-list{gap:4px}.org-scope-item .department-badge{max-width:calc(100vw - 120px)}}@media(prefers-color-scheme:dark){.department-color-0{background:#173358;color:#b9d7ff;border-color:#31537c}.department-color-1{background:#173d2d;color:#bcebd0;border-color:#2d6049}.department-color-2{background:#4b3518;color:#ffd9a0;border-color:#75562c}.department-color-3{background:#352650;color:#ddc8ff;border-color:#5b4679}.department-color-4{background:#4b2630;color:#ffc5d0;border-color:#74404d}.department-color-5{background:#173c40;color:#b9edf0;border-color:#2f5e63}.department-color-6{background:#3b4019;color:#e9ef9f;border-color:#5c642a}.department-color-7{background:#4b2f20;color:#ffd0af;border-color:#704a35}.department-color-8{background:#26345a;color:#c7d4ff;border-color:#43527a}.department-color-9{background:#303642;color:#d8dee9;border-color:#4b5361}}

/* V10.3.8c 部门颜色一致性修复：部门 ID 决定颜色，CSS 变量覆盖旧 10 色池 */
.department-badge{
  background:var(--department-bg,#eef3fb)!important;
  color:var(--department-fg,#334b68)!important;
  border-color:var(--department-border,#ccd7e6)!important;
}
@media(prefers-color-scheme:dark){
  .department-badge{
    background:var(--department-bg-dark,#253044)!important;
    color:var(--department-fg-dark,#d6e3f7)!important;
    border-color:var(--department-border-dark,#44536d)!important;
  }
}
