:root { color-scheme: light; font-family: Inter, "Microsoft YaHei", "PingFang SC", sans-serif; color: #203654; background: #f4f7fb; font-size: 14px; }
* { box-sizing: border-box; }
[hidden] { display: none !important; }
.directory-role-grid { display:grid;grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:16px;margin-top:24px; }
.directory-role { border:1px solid #dce5f1;border-radius:10px;padding:18px;background:#fff; }
.directory-role h2 { margin-bottom:8px; }
.directory-role p { color:#667c98;font-size:13px; }
.role-members { min-height:42px; }
.role-actions { display:flex;gap:6px;flex-wrap:wrap; }
.role-actions button { padding:6px 9px;font-size:12px; }
.directory-role-choices { display:grid;grid-template-columns:repeat(2,minmax(180px,1fr));gap:12px;max-height:50vh;overflow:auto;margin:18px 0; }
.directory-role-choices label,.permission-actions label { display:flex;align-items:center;gap:8px; }
.permission-editor { display:grid;grid-template-columns:260px minmax(0,1fr);border:1px solid #dce5f1;border-radius:10px;overflow:hidden;margin-top:16px; }
.permission-modules { background:#f7f9fd;border-right:1px solid #dce5f1;max-height:68vh;overflow:auto;padding:10px; }
.permission-module { display:flex;align-items:center;border-radius:6px;padding:3px 7px; }
.permission-module.active { background:#e4efff; }
.permission-module button { flex:1;justify-content:flex-start;text-align:left;border:0;background:transparent;padding:9px;font-size:13px;box-shadow:none; }
.permission-batch { display:flex;gap:6px;margin-bottom:10px; }
.permission-batch button { padding:6px 10px;font-size:12px; }
#permissionFieldPanel { padding:20px;min-width:0; }
#permissionModuleHidden { color:#93722e;background:#fff8e8;padding:8px 12px;border-radius:6px; }
.permission-fields { max-height:47vh;overflow:auto;border:1px solid #e3eaf5;border-radius:6px; }
.permission-fields table { width:100%;border-collapse:collapse; }
.permission-fields th { position:sticky;top:0;background:#edf4fd;z-index:1; }
.permission-fields th label { display:inline-flex;align-items:center;gap:5px;white-space:nowrap;cursor:pointer;margin:0; }
.permission-fields td,.permission-fields th { padding:9px 14px;border-bottom:1px solid #e7edf6; }
.permission-fields td:not(:first-child),.permission-fields th:not(:first-child) { text-align:center;width:90px; }
.permission-actions { display:flex;gap:14px;flex-wrap:wrap; }
#permissionFieldPanel fieldset { margin-top:16px;border:1px solid #e3eaf5;border-radius:6px;padding:14px; }
.permission-footer { display:flex;gap:10px;padding-top:18px; }
#permissionSaveStatus { color:#617c9f; }
@media(max-width:760px){.permission-editor{grid-template-columns:190px minmax(0,1fr)}#permissionFieldPanel{padding:10px}.directory-role-choices{grid-template-columns:1fr}.member-main{padding:16px}.permission-fields td,.permission-fields th{padding:8px}}
body { margin: 0; }
button, input, select, textarea { font: inherit; }
button, .button { display: inline-flex; align-items: center; justify-content: center; gap: 6px; padding: 9px 14px; border: 1px solid #ccd9ed; border-radius: 8px; background: #fff; color: #345276; cursor: pointer; text-decoration: none; }
button:disabled, input:disabled, select:disabled { cursor: not-allowed; opacity: .55; }
button.primary, .button.primary { background: #2463eb; color: #fff; border-color: #2463eb; box-shadow: 0 3px 9px #2463eb20; }
button.ghost { background: #fff; }
a { color: #2463eb; }
input, select, textarea { min-width: 0; padding: 9px 10px; border: 1px solid #cfdbee; border-radius: 7px; color: #254366; background: #fff; }
textarea { resize: vertical; min-height: 68px; }
input:focus, select:focus, textarea:focus, button:focus-visible, a:focus-visible { outline: 2px solid #88b1ff; outline-offset: 2px; }
input[type="checkbox"] { accent-color: #2463eb; width: 16px; height: 16px; }
label { display: grid; gap: 7px; color: #415a7a; font-size: 12px; }
h1, h2, p { margin-top: 0; }
h1 { font-size: 22px; margin-bottom: 9px; } h2 { font-size: 17px; }
p { line-height: 1.7; } small, .muted { color: #71829b; font-size: 12px; line-height: 1.7; }
.member-header { height: 78px; display: flex; align-items: center; justify-content: space-between; gap: 24px; padding: 0 32px; border-bottom: 1px solid #dfe7f3; background: #fff; }
.member-brand { display: flex; align-items: center; gap: 12px; color: #203654; text-decoration: none; }
.member-brand > span { padding: 10px 14px; border-radius: 11px; font-size: 23px; color: #fff; background: #2463eb; }
.member-brand strong, .member-brand small { display: block; }
#memberIdentity { display: flex; align-items: center; gap: 14px; font-size: 12px; }
#memberIdentityRole { color: #7084a1; }
.owner-label { color: #285fc7; }
.policy-batch-check { display: inline-flex; align-items: center; gap: 7px; color: inherit; font-weight: 600; white-space: nowrap; }
.policy-batch-note { margin: 10px 0 0; }
main { width: min(1450px, 100%); margin: 0 auto; padding: 24px 28px 60px; }
.member-status { min-height: 24px; border-radius: 8px; color: #416287; font-size: 13px; }
.member-status:not(:empty) { padding: 10px 13px; background: #eaf2ff; }
.member-status.error { background: #fff1ef; color: #a92e2e; }
.login-card { width: min(430px, 100%); margin: 7vh auto; padding: 32px; border: 1px solid #dce5f1; border-radius: 15px; background: #fff; box-shadow: 0 12px 40px #284b7b0d; }
.eyebrow { color: #7b91ad; font-size: 10px; font-weight: 700; letter-spacing: .07em; }
.login-card h1 { margin-top: 14px; }.login-card form { display: grid; gap: 19px; margin: 24px 0; }.login-card input { height: 42px; }
.member-tabs { display: flex; flex-wrap: wrap; gap: 9px; margin-bottom: 18px; }.member-tabs button.active { color: #1e5eea; border-color: #9abbff; background: #eaf2ff; }
.panel { padding: 24px; background: #fff; border: 1px solid #e0e6f0; border-radius: 13px; }
.panel-heading { display: flex; align-items: flex-start; justify-content: space-between; gap: 24px; margin-bottom: 18px; }.panel-heading p { margin-bottom: 0; color: #71829b; font-size: 12px; }
.toolbar { display: flex; flex-wrap: wrap; align-items: end; gap: 13px; margin: 16px 0; }.toolbar select { min-width: 170px; }.grow { flex: 1; min-width: 220px; }
.coverage { background: #f4f8fe; border-left: 3px solid #8eb2fa; padding: 10px 13px; font-size: 12px; color: #516d91; }
.table-wrap { width: 100%; overflow: auto; border: 1px solid #e3eaf4; border-radius: 9px; }
table { width: 100%; border-collapse: collapse; font-size: 12px; text-align: left; }
th { background: #f5f8fd; color: #526b8c; white-space: nowrap; font-weight: 600; } td, th { padding: 11px 12px; border-bottom: 1px solid #e3eaf4; vertical-align: top; }
td { max-width: 380px; overflow-wrap: anywhere; } td small { display: block; } td button { margin: 0 6px 4px 0; padding: 6px 10px; } tr:last-child td { border-bottom: 0; }
.empty { padding: 24px; text-align: center; color: #7b8fa8; }
.badge { display: inline-block; padding: 3px 7px; border-radius: 5px; color: #178260; background: #e7f6ef; }.badge.off { color: #a36b24; background: #fff3e1; }
.pagination { display: flex; align-items: center; justify-content: flex-end; gap: 10px; color: #72829c; font-size: 12px; margin: 15px 0 0; }
.data-record { border: 1px solid #dfe7f3; margin-top: 13px; border-radius: 9px; overflow: hidden; }.data-record > summary { padding: 14px; cursor: pointer; background: #f8faff; }.data-record > summary small { margin-left: 12px; }
.record-fields { display: grid; grid-template-columns: repeat(auto-fit, minmax(210px, 1fr)); gap: 15px; padding: 16px; }.record-field { min-width: 0; display: grid; gap: 6px; }.record-field > span { color: #69809d; font-size: 12px; }.record-field > div { white-space: pre-wrap; overflow-wrap: anywhere; font-size: 13px; }
.record-child-section { margin: 0 16px 16px; }.record-child-section h3 { font-size: 13px; color: #69809d; }.record-child-section input, .record-child-section textarea { width: 165px; }.record-child-section textarea { min-height: 38px; }
.data-record .form-actions { padding: 0 16px 15px; }.data-record input.is-dirty, .data-record textarea.is-dirty { border-color: #e4b24a; background: #fff9e9; }
.check-line { display: flex; align-items: center; gap: 8px; margin-bottom: 12px; }.form-actions { display: flex; justify-content: flex-end; gap: 9px; margin-top: 16px; }
.store-access-panel { margin-top: 28px; border-top: 1px solid #e2e8f2; padding-top: 22px; }.store-access-panel > label { max-width: 300px; }.store-choices { display: flex; flex-wrap: wrap; gap: 10px; margin: 17px 0; }.store-choices label { display: flex; align-items: center; gap: 7px; padding: 7px 10px; border: 1px solid #e0e8f4; border-radius: 7px; }
dialog { width: min(480px, calc(100vw - 32px)); max-height: calc(100vh - 48px); overflow: auto; border: 1px solid #d1dded; border-radius: 13px; color: #203654; padding: 25px; box-shadow: 0 20px 70px #1934533b; } dialog::backdrop { background: #14294766; } dialog form > label { margin-bottom: 14px; } dialog .panel-heading { align-items: center; } dialog h2 { margin: 0; }
@media (max-width: 720px) { .member-header { padding: 12px 17px; height: auto; flex-wrap: wrap; } #memberIdentity { gap: 10px; flex-wrap: wrap; } main { padding: 15px 12px 40px; } .panel { padding: 15px; } .panel-heading { gap: 10px; flex-wrap: wrap; } .toolbar label { flex: 1; min-width: 145px; } .toolbar select { min-width: 0; } .login-card { padding: 24px; } }

.permission-store-scope{display:flex;align-items:end;gap:18px;flex-wrap:wrap;margin:12px 0 18px;padding:12px;background:#f5f8fd;border-radius:8px}.permission-store-scope select{min-width:190px}.permission-store-scope p,.permission-field-help{font-size:12px;color:#667c98;margin:0}.permission-field-help{margin:10px 0}.store-choices{max-height:45vh;overflow:auto}#memberStoresDialog{width:min(660px,calc(100vw - 32px))}
.permission-copy-heading{display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap}.permission-copy-heading h2{margin:0}#permissionCopyHint{margin:8px 0 12px}#permissionCopyDialog{width:min(680px,calc(100vw - 32px))}#permissionCopySummary{margin:16px 0 10px;font-weight:600}.permission-copy-explanation{padding:12px;background:#f5f8fd;border-radius:8px;font-size:13px}#permissionCopyControls{border:0;padding:0;margin:18px 0 0}#permissionCopyControls legend{font-weight:600;margin-bottom:12px}#permissionCopyMembers{max-height:34vh;overflow:auto;padding:4px}#permissionCopyStatus{margin:12px 0 0;font-size:13px;color:#a92e2e;white-space:pre-wrap}
