:root {
  --navy-950: #0b172a;
  --navy-900: #10213d;
  --navy-800: #17345f;
  --blue-700: #1769d2;
  --blue-100: #e9f2ff;
  --ink: #172033;
  --muted: #5e6b80;
  --subtle: #8591a5;
  --canvas: #f4f6fa;
  --surface: #ffffff;
  --line: #dfe5ed;
  --success: #16825f;
  --success-bg: #e8f6ef;
  --warning: #9a5b06;
  --warning-bg: #fff3de;
  --danger: #b33c36;
  --danger-bg: #fdefed;
  --radius: 12px;
  --shadow: 0 10px 28px rgba(24, 42, 67, .07);
  font-family: Inter, ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "PingFang SC", "Microsoft YaHei", sans-serif;
  color: var(--ink);
  background: var(--canvas);
}

* { box-sizing: border-box; }
[hidden] { display: none !important; }
.visually-hidden { position: absolute !important; width: 1px !important; height: 1px !important; padding: 0 !important; margin: -1px !important; overflow: hidden !important; clip: rect(0, 0, 0, 0) !important; white-space: nowrap !important; border: 0 !important; }
body { margin: 0; min-width: 320px; }
button, input, select, textarea { font: inherit; }
button { cursor: pointer; }
button:focus-visible, a:focus-visible, input:focus-visible, select:focus-visible, textarea:focus-visible { outline: 3px solid rgba(23, 105, 210, .3); outline-offset: 2px; }
svg { width: 18px; height: 18px; fill: none; stroke: currentColor; stroke-width: 1.8; stroke-linecap: round; stroke-linejoin: round; }

.app-shell { min-height: 100vh; display: grid; grid-template-columns: 260px minmax(0, 1fr); }
.sidebar { position: sticky; top: 0; display: flex; flex-direction: column; height: 100vh; padding: 26px 16px 18px; background: var(--navy-950); color: #dce7f7; }
.product-mark { display: flex; align-items: center; gap: 10px; margin: 0 10px 38px; color: #fff; text-decoration: none; font-size: 19px; font-weight: 790; letter-spacing: -.035em; }
.product-mark small { display: block; margin-top: 2px; color: #8294b1; font-size: 8px; font-weight: 700; letter-spacing: .13em; }
.mark-symbol { display: grid; width: 32px; height: 32px; place-items: center; border-radius: 9px; background: linear-gradient(135deg, #3388f2, #1c5db8); font-size: 17px; box-shadow: 0 7px 15px rgba(0, 0, 0, .2); }
.primary-nav { display: grid; gap: 5px; }
.nav-item { position: relative; display: flex; align-items: center; gap: 12px; width: 100%; min-height: 44px; padding: 0 12px; border: 0; border-radius: 8px; color: #9cafc9; background: transparent; font-size: 14px; font-weight: 650; text-align: left; transition: background-color .18s ease, color .18s ease; }
.nav-item:hover { color: #e5effd; background: rgba(255, 255, 255, .07); }
.nav-item.active { color: #fff; background: #1c3965; box-shadow: inset 2px 0 0 #65a8ff; }
.nav-count { margin-left: auto; min-width: 20px; padding: 2px 6px; border-radius: 999px; color: #bcd8ff; background: #294a78; font-size: 11px; text-align: center; }.nav-count.warn { color: #ffd899; background: #684a1a; }
.department-nav-tree { display: grid; gap: 3px; max-height: min(38vh, 320px); margin: 2px 0 8px; padding: 1px 3px 2px 17px; overflow-y: auto; border-left: 1px solid rgba(151, 185, 229, .18); }.department-tree-department, .department-type-nav { display: flex; align-items: center; width: 100%; border: 0; border-radius: 6px; color: #9cafc9; background: transparent; text-align: left; transition: color .18s ease, background-color .18s ease; }.department-tree-department { min-height: 34px; gap: 7px; padding: 0 8px; font-size: 12px; font-weight: 700; }.department-tree-department:hover, .department-tree-department[aria-expanded="true"] { color: #edf5ff; background: rgba(255, 255, 255, .07); }.tree-caret { width: 12px; color: #78a9e4; font-size: 15px; line-height: 1; transition: transform .18s ease; }.department-tree-department[aria-expanded="true"] .tree-caret { transform: rotate(90deg); }.tree-department-name { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }.tree-count { margin-left: auto; color: #87a5ca; font-size: 10px; font-weight: 700; }.department-tree-types { display: grid; gap: 2px; margin: 0 0 3px 16px; padding-left: 9px; border-left: 1px solid rgba(151, 185, 229, .16); }.department-type-nav { min-height: 32px; gap: 7px; padding: 0 8px; font-size: 11px; }.department-type-nav::before { width: 5px; height: 5px; flex: 0 0 auto; border-radius: 50%; background: #5f91ca; content: ''; }.department-type-nav:hover, .department-type-nav.active { color: #fff; background: #1b3a66; }.department-type-nav.active::before { background: #83c1ff; box-shadow: 0 0 0 3px rgba(131, 193, 255, .12); }.department-type-nav span { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }.department-tree-empty { margin: 2px 8px 6px 26px; color: #7286a4; font-size: 10px; line-height: 1.45; }
.sidebar-foot { display: grid; gap: 15px; margin-top: auto; padding: 16px 10px 0; border-top: 1px solid rgba(216, 232, 255, .12); }
.security-note { display: flex; gap: 8px; align-items: center; color: #94a8c5; font-size: 11px; }.security-note span { width: 7px; height: 7px; border-radius: 50%; background: #48ce94; box-shadow: 0 0 0 3px rgba(72, 206, 148, .12); }
.current-user { display: flex; align-items: center; gap: 9px; }.avatar { display: grid; width: 30px; height: 30px; place-items: center; border-radius: 50%; color: #dff0ff; background: #28568a; font-size: 12px; font-weight: 800; }.current-user strong { display: block; color: #dfeafe; font-size: 12px; }.current-user small { display: block; margin-top: 2px; color: #8498b6; font-size: 10px; }

.main-frame { min-width: 0; }.app-header { display: flex; align-items: center; justify-content: space-between; min-height: 88px; padding: 18px 40px; border-bottom: 1px solid var(--line); background: rgba(255, 255, 255, .9); }.breadcrumb, .eyebrow { margin: 0; color: var(--blue-700); font-size: 10px; font-weight: 800; letter-spacing: .12em; }.app-header h1 { margin: 5px 0 0; color: #10213d; font-size: 22px; letter-spacing: -.03em; }.header-actions, .toolbar-controls, .welcome-actions, .form-actions { display: flex; align-items: center; gap: 10px; }.live-indicator { display: flex; align-items: center; gap: 7px; color: var(--muted); font-size: 12px; }.live-indicator i { width: 7px; height: 7px; border-radius: 50%; background: var(--success); }
.content-area { width: min(1440px, 100%); margin: 0 auto; padding: 30px 40px 64px; }.view-panel { animation: enter .2s ease-out; }
@keyframes enter { from { opacity: 0; transform: translateY(4px); } to { opacity: 1; transform: translateY(0); } }

.button { display: inline-flex; min-height: 40px; align-items: center; justify-content: center; gap: 7px; padding: 0 14px; border: 1px solid transparent; border-radius: 7px; font-size: 13px; font-weight: 720; transition: background-color .18s ease, border-color .18s ease, color .18s ease; }.button svg { width: 16px; height: 16px; }.button.primary { color: #fff; background: var(--blue-700); box-shadow: 0 4px 10px rgba(23, 105, 210, .18); }.button.primary:hover { background: #1057b3; }.button.secondary { color: var(--blue-700); background: var(--blue-100); }.button.secondary:hover { background: #d9eaff; }.button.tertiary { border-color: #cad5e4; color: #3e5069; background: #fff; }.button.tertiary:hover { border-color: #9fb5d2; color: #17345f; background: #f7faff; }.text-button { border: 0; padding: 4px; color: var(--blue-700); background: transparent; font-size: 12px; font-weight: 700; }.text-button:hover { color: #104f9f; text-decoration: underline; }.icon-button { display: grid; width: 34px; height: 34px; place-items: center; border: 0; border-radius: 6px; color: var(--muted); background: transparent; font-size: 25px; line-height: 1; }.icon-button:hover { color: var(--ink); background: #edf2f8; }

.welcome-panel { display: flex; justify-content: space-between; gap: 22px; padding: 24px 26px; border-radius: var(--radius); color: #ecf5ff; background: linear-gradient(115deg, #112a4c 0%, #183b68 59%, #1d5c9c 135%); box-shadow: 0 14px 32px rgba(18, 47, 82, .16); }.welcome-panel .eyebrow { color: #8cc2ff; }.welcome-panel h2 { margin: 7px 0 6px; font-size: 25px; letter-spacing: -.035em; }.welcome-panel p:not(.eyebrow) { max-width: 660px; margin: 0; color: #bad0e9; font-size: 14px; line-height: 1.6; }.welcome-actions { flex: none; align-self: end; }.welcome-actions .secondary { color: #dceeff; background: rgba(255, 255, 255, .1); }.welcome-actions .secondary:hover { background: rgba(255, 255, 255, .18); }.welcome-actions .text-button { color: #b9dcff; }
.metric-grid { display: grid; grid-template-columns: repeat(4, 1fr); gap: 14px; margin: 20px 0; }.metric { padding: 17px 18px; border: 1px solid var(--line); border-radius: 10px; background: var(--surface); box-shadow: 0 4px 14px rgba(30, 52, 79, .035); }.metric span { display: block; color: var(--muted); font-size: 12px; }.metric strong { display: block; margin-top: 8px; color: #152746; font-size: 28px; line-height: 1; letter-spacing: -.05em; }.metric em { display: block; margin-top: 8px; color: var(--subtle); font-style: normal; font-size: 11px; }
.workspace-grid { display: grid; grid-template-columns: minmax(0, 1.45fr) minmax(280px, .85fr); gap: 18px; }.organization-grid { display: grid; grid-template-columns: minmax(260px, .65fr) minmax(0, 2.15fr); gap: 18px; }.surface { border: 1px solid var(--line); border-radius: var(--radius); background: var(--surface); box-shadow: var(--shadow); }.surface-header { display: flex; align-items: center; justify-content: space-between; gap: 12px; padding: 20px 22px 15px; border-bottom: 1px solid #edf1f5; }.surface-header h3 { margin: 5px 0 0; color: #1b2d4a; font-size: 16px; letter-spacing: -.02em; }.surface-summary { margin: 5px 0 0; color: var(--muted); font-size: 11px; line-height: 1.45; }.task-list, .request-list, .department-list { padding: 4px 22px 13px; }.task-row { display: grid; grid-template-columns: 36px minmax(0, 1fr) auto; gap: 11px; align-items: center; padding: 14px 0; border-bottom: 1px solid #edf1f5; }.task-row:last-child, .request-row:last-child, .department-row:last-child { border-bottom: 0; }.task-icon { display: grid; width: 32px; height: 32px; place-items: center; border-radius: 8px; color: var(--blue-700); background: var(--blue-100); }.task-icon svg { width: 16px; }.task-copy strong { display: block; overflow: hidden; color: #263852; font-size: 13px; text-overflow: ellipsis; white-space: nowrap; }.task-copy span { display: block; margin-top: 4px; color: var(--muted); font-size: 11px; }.task-row .button { min-height: 32px; padding: 0 10px; font-size: 12px; }.count-chip { min-width: 24px; padding: 3px 8px; border-radius: 999px; color: #1769d2; background: var(--blue-100); font-size: 12px; font-weight: 750; text-align: center; }.request-row { padding: 13px 0; }.request-row strong { display: block; color: #2a3c57; font-size: 13px; }.request-row span { display: block; margin-top: 4px; color: var(--muted); font-size: 11px; line-height: 1.5; }.request-actions { display: flex; gap: 7px; margin-top: 10px; }.request-actions .button { min-height: 29px; padding: 0 9px; font-size: 11px; }.request-actions .reject { border: 1px solid #f3cbc7; color: var(--danger); background: var(--danger-bg); }
.recent-surface, .pending-access-full, .document-register { margin-top: 18px; }.document-table-wrap, .people-table-wrap { overflow: auto; }.document-table, .people-table { width: 100%; border-collapse: collapse; text-align: left; }.document-table th, .people-table th { padding: 11px 22px; color: #8490a2; background: #fafbfd; font-size: 10px; font-weight: 800; letter-spacing: .07em; text-transform: uppercase; white-space: nowrap; }.document-table td, .people-table td { padding: 14px 22px; border-top: 1px solid #edf1f5; color: #4f5f74; font-size: 12px; vertical-align: middle; }.document-table tr:hover td, .people-table tr:hover td { background: #fbfdff; }.document-name { max-width: 290px; color: #243752; font-weight: 700; }.document-name small { display: block; margin-top: 4px; overflow: hidden; color: #8a96a8; font-weight: 500; text-overflow: ellipsis; white-space: nowrap; }.row-action { border: 0; padding: 5px 0; color: var(--blue-700); background: transparent; font-size: 12px; font-weight: 700; }.row-action:hover { text-decoration: underline; }.tag { display: inline-block; padding: 3px 7px; border-radius: 999px; font-size: 10px; font-weight: 760; white-space: nowrap; }.tag.internal { color: #40536e; background: #edf2f7; }.tag.secret { color: var(--warning); background: var(--warning-bg); }.tag.confidential { color: var(--danger); background: var(--danger-bg); }.tag.active { color: var(--success); background: var(--success-bg); }.tag.completed { color: #647185; background: #edf2f7; }.tag.withdrawn { color: #8a2f2a; background: #fbe7e5; }

.section-toolbar { display: flex; align-items: end; justify-content: space-between; gap: 20px; margin-bottom: 20px; }.section-toolbar h2 { margin: 6px 0; color: #172b49; font-size: 24px; letter-spacing: -.04em; }.section-toolbar p:not(.eyebrow) { max-width: 630px; margin: 0; color: var(--muted); font-size: 13px; line-height: 1.55; }.toolbar-controls label { display: grid; gap: 5px; color: var(--muted); font-size: 11px; font-weight: 700; }.toolbar-controls select, .table-search input { min-height: 36px; padding: 0 10px; border: 1px solid #cad5e4; border-radius: 6px; color: #2e4059; background: #fff; }.access-guide { display: grid; grid-template-columns: repeat(3, 1fr); margin-bottom: 18px; }.guide-step { display: flex; gap: 13px; padding: 25px; border-right: 1px solid #edf1f5; }.guide-step:last-child { border-right: 0; }.guide-step b { color: #9ec9fd; font-size: 22px; letter-spacing: -.05em; }.guide-step strong, .guide-step span { display: block; }.guide-step strong { color: #273953; font-size: 13px; }.guide-step span { margin-top: 6px; color: var(--muted); font-size: 12px; line-height: 1.55; }
.header-admin-button, .header-audit-button { min-height: 34px; padding: 0 11px; font-size: 12px; }.admin-console-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(235px, 1fr)); gap: 16px; }.admin-console-card { display: grid; min-height: 276px; align-content: start; gap: 17px; padding: 23px; border-top: 3px solid #c8dcf5; }.admin-console-card:hover { border-top-color: var(--blue-700); box-shadow: 0 12px 27px rgba(23, 63, 109, .1); }.admin-card-icon { display: grid; width: 42px; height: 42px; place-items: center; border-radius: 10px; color: #1b63b8; background: #e8f2ff; }.admin-card-icon svg { width: 21px; height: 21px; }.admin-console-card h3 { margin: 5px 0 8px; color: #1d334f; font-size: 18px; letter-spacing: -.025em; }.admin-console-card p:not(.eyebrow) { min-height: 58px; margin: 0; color: var(--muted); font-size: 12px; line-height: 1.6; }.admin-console-card .button { align-self: end; width: fit-content; margin-top: auto; }.audit-management { overflow: hidden; }.audit-filters { display: flex; align-items: end; gap: 12px; padding: 17px 22px; border-bottom: 1px solid #edf1f5; background: #fbfdff; }.audit-filters label { display: grid; gap: 5px; color: var(--muted); font-size: 11px; font-weight: 700; }.audit-filters select, .audit-filters input { min-height: 37px; padding: 0 10px; border: 1px solid #cad5e4; border-radius: 6px; color: #2e4059; background: #fff; }.audit-search { min-width: min(360px, 100%); flex: 1; }.audit-table td:nth-child(5) { max-width: 330px; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }

.print-service-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 18px; }.print-printers { margin-top: 18px; }.service-card { min-height: 188px; overflow: hidden; }.service-card-content { padding: 4px 22px 17px; }.service-card-content > p { margin: 12px 0; color: var(--muted); font-size: 12px; line-height: 1.6; }.service-status { display: inline-flex; align-items: center; min-height: 27px; margin-top: 13px; padding: 0 9px; border-radius: 999px; color: #14623e; background: #e7f7ed; font-size: 11px; font-weight: 800; }.service-status.offline { color: #9a5a00; background: #fff2dc; }.service-row { display: flex; align-items: center; justify-content: space-between; gap: 15px; min-height: 68px; padding: 12px 0; border-bottom: 1px solid #edf1f5; }.service-row:last-child { border-bottom: 0; }.service-row strong { display: block; color: #2a3d57; font-size: 13px; }.service-row span:not(.tag) { display: block; margin-top: 5px; color: var(--muted); font-size: 11px; }.service-row .mini-actions { align-items: center; flex-wrap: wrap; justify-content: end; }.print-job-list { display: grid; gap: 0; border-top: 1px solid #edf1f5; }.print-job-row { display: flex; align-items: center; justify-content: space-between; gap: 13px; padding: 10px 0; border-bottom: 1px solid #edf1f5; }.print-job-row:last-child { border-bottom: 0; }.print-job-row strong { display: block; color: #2d405a; font-size: 12px; }.print-job-row span, .print-job-row small { display: block; margin-top: 4px; color: var(--muted); font-size: 10px; line-height: 1.45; }.print-job-row small { color: #8a5a11; }.print-job-row .button { flex: none; min-height: 32px; padding: 0 9px; font-size: 11px; }.release-code { display: grid; gap: 11px; text-align: center; }.release-code strong, .release-code b { overflow-wrap: anywhere; color: #233b5a; font-family: ui-monospace, SFMono-Regular, Menlo, Consolas, monospace; letter-spacing: .06em; }.release-code strong { font-size: 16px; }.release-code b { padding: 13px; border: 1px dashed #9ebee5; border-radius: 8px; color: #155fae; background: #f4f9ff; font-size: 28px; }.release-code .agent-secret { font-size: 13px; letter-spacing: 0; }.release-code span { color: var(--muted); font-size: 11px; }
.file-tabs-surface { overflow: hidden; }.tab-section { padding: 19px 22px; border-bottom: 1px solid #e8eef5; }.tab-section-label { display: block; margin-bottom: 10px; color: #64778f; font-size: 11px; font-weight: 800; letter-spacing: .08em; }.file-tabs { display: flex; gap: 8px; overflow-x: auto; padding-bottom: 2px; scrollbar-width: thin; }.file-tab { flex: 0 0 auto; min-height: 38px; padding: 0 14px; border: 1px solid #d6e1ef; border-radius: 7px; color: #52677f; background: #fff; font-size: 12px; font-weight: 700; transition: color .18s ease, border-color .18s ease, background-color .18s ease; }.file-tab:hover { border-color: #8cb7e7; color: #1769d2; background: #f7fbff; }.file-tab.active { border-color: #1f6ed1; color: #fff; background: #1f6ed1; box-shadow: 0 4px 9px rgba(31, 110, 209, .18); }.file-type-heading { display: flex; align-items: center; justify-content: space-between; gap: 12px; }.file-type-heading .text-button { margin-bottom: 8px; }.file-list-summary { min-height: 47px; padding: 15px 22px; border-bottom: 1px solid #edf1f5; color: #5e7088; background: #fbfdff; font-size: 12px; line-height: 1.5; }
.department-catalog { display: grid; grid-template-columns: repeat(auto-fill, minmax(255px, 1fr)); gap: 15px; }.catalog-card { position: relative; display: grid; min-height: 176px; align-content: space-between; padding: 20px; border: 1px solid #dce5f0; border-radius: 11px; color: inherit; background: #fff; box-shadow: 0 6px 16px rgba(23, 49, 81, .045); text-align: left; transition: border-color .18s ease, box-shadow .18s ease, transform .18s ease; }.catalog-card:hover { border-color: #8db9ec; box-shadow: 0 14px 27px rgba(24, 77, 137, .11); transform: translateY(-2px); }.catalog-card:focus-visible { outline: 3px solid rgba(23, 105, 210, .3); outline-offset: 2px; }.catalog-card-top { display: flex; align-items: start; justify-content: space-between; gap: 12px; }.catalog-icon { display: grid; width: 40px; height: 40px; place-items: center; border-radius: 10px; color: #1b63b8; background: #e9f3ff; }.catalog-icon svg { width: 20px; height: 20px; }.catalog-card h3 { margin: 15px 0 5px; color: #1d334f; font-size: 17px; letter-spacing: -.025em; }.catalog-card p { margin: 0; color: var(--muted); font-size: 12px; line-height: 1.55; }.catalog-card-footer { display: flex; align-items: center; justify-content: space-between; margin-top: 16px; color: #1c6ac9; font-size: 12px; font-weight: 750; }.department-type-detail { margin-top: 20px; overflow: hidden; }.type-detail-header { display: flex; align-items: start; justify-content: space-between; gap: 16px; padding: 22px; border-bottom: 1px solid #e8eef5; }.type-detail-header h3 { margin: 5px 0; color: #1b314e; font-size: 19px; }.type-detail-header p:not(.eyebrow) { margin: 0; color: var(--muted); font-size: 12px; }.type-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(260px, 1fr)); gap: 13px; padding: 19px 22px 22px; }.document-type-card { padding: 16px; border: 1px solid #dfe7f0; border-radius: 9px; background: #fbfdff; }.document-type-card h4 { margin: 0 0 6px; color: #29405e; font-size: 14px; }.document-type-card > p { min-height: 37px; margin: 0; color: var(--muted); font-size: 12px; line-height: 1.55; }.type-route { display: flex; flex-wrap: wrap; gap: 4px; margin: 13px 0; }.route-person { padding: 4px 6px; border-radius: 4px; color: #5d7088; background: #edf3f9; font-size: 10px; }.type-card-footer { display: flex; align-items: center; justify-content: space-between; gap: 8px; padding-top: 12px; border-top: 1px solid #e8eef5; }.type-card-footer span { color: var(--subtle); font-size: 10px; }.type-card-footer .button { min-height: 32px; padding: 0 9px; font-size: 11px; }

.department-surface { min-height: 480px; }.department-item { display: grid; grid-template-columns: minmax(0, 1fr) auto; align-items: center; min-height: 62px; border-bottom: 1px solid #edf1f5; }.department-item:last-child { border-bottom: 0; }.department-row { display: grid; grid-template-columns: 36px minmax(0, 1fr); gap: 11px; align-items: center; width: 100%; min-height: 61px; padding: 11px 0; border: 0; color: inherit; background: transparent; text-align: left; cursor: pointer; transition: background-color .18s ease, color .18s ease; }.department-row:hover { background: #f7fbff; }.department-row:focus-visible { outline: 3px solid rgba(23, 105, 210, .3); outline-offset: -2px; }.department-item.selected .department-row { background: #edf6ff; }.department-item.selected .department-badge { color: #fff; background: var(--blue-700); }.department-copy { min-width: 0; }.department-badge { display: grid; width: 32px; height: 32px; place-items: center; border-radius: 7px; color: #275b96; background: #e8f1fc; font-size: 12px; font-weight: 800; }.department-copy strong { display: block; overflow: hidden; color: #293c58; font-size: 13px; text-overflow: ellipsis; white-space: nowrap; }.department-copy span { display: block; margin-top: 4px; overflow: hidden; color: var(--muted); font-size: 11px; text-overflow: ellipsis; white-space: nowrap; }.department-actions { padding-right: 2px; }.mini-actions { display: flex; gap: 4px; }.mini-actions button { border: 0; padding: 5px 6px; border-radius: 5px; color: #65758a; background: transparent; font-size: 11px; cursor: pointer; }.mini-actions button:hover { color: var(--blue-700); background: var(--blue-100); }.mini-actions button:focus-visible { outline: 2px solid rgba(23, 105, 210, .45); outline-offset: 1px; }.mini-actions button.delete:hover { color: var(--danger); background: var(--danger-bg); }.people-surface { min-width: 0; }.table-search { display: grid; gap: 4px; color: var(--muted); font-size: 11px; font-weight: 700; }.table-search input { width: 180px; }.person-cell { display: flex; align-items: center; gap: 9px; color: #263953; font-weight: 700; }.person-cell small { display: block; margin-top: 3px; color: #8190a3; font-weight: 500; }.person-avatar { display: grid; width: 30px; height: 30px; place-items: center; border-radius: 50%; color: #1f4d7c; background: #dfeefd; font-size: 11px; }.role-list { display: flex; flex-wrap: wrap; gap: 4px; }.role { padding: 3px 5px; border-radius: 4px; color: #52657c; background: #eef2f7; font-size: 10px; font-weight: 650; }.role.system_admin { color: #805400; background: #fff2d6; }.role.flow_admin { color: #185aa2; background: #e6f0ff; }
.directory-sync-panel { display: grid; grid-template-columns: minmax(0, 1fr) minmax(260px, .9fr) auto; align-items: center; gap: 20px; margin: 0 0 18px; padding: 17px 21px; border-color: #d5e3f3; background: linear-gradient(90deg, #fbfdff, #f5faff); }.directory-sync-copy h3 { margin: 5px 0; color: #1d385c; font-size: 15px; }.directory-sync-copy p:not(.eyebrow) { margin: 0; color: var(--muted); font-size: 12px; line-height: 1.5; }.directory-sync-status { display: grid; gap: 5px; min-width: 0; }.sync-state { width: fit-content; padding: 4px 8px; border-radius: 999px; font-size: 11px; font-weight: 800; }.sync-state.success { color: #14623e; background: #e7f7ed; }.sync-state.failed { color: #a13e33; background: #fff0ee; }.sync-state.pending { color: #8a5a11; background: #fff2dc; }.sync-detail { overflow: hidden; color: #667991; font-size: 11px; line-height: 1.45; text-overflow: ellipsis; white-space: nowrap; }.directory-source { padding: 3px 6px; border-radius: 999px; color: #1769d2; background: #e8f3ff; font-size: 10px; font-weight: 800; }.directory-sync-panel .button { min-height: 38px; white-space: nowrap; }.directory-sync-panel .button:disabled { cursor: wait; opacity: .68; }
.directory-person-picker { display: grid; gap: 7px; grid-column: 1 / -1; }.directory-person-picker label { display: grid; gap: 7px; color: #465872; font-size: 12px; font-weight: 700; }.directory-person-picker small { color: var(--muted); font-size: 11px; font-weight: 500; line-height: 1.45; }.directory-person-results { display: grid; gap: 5px; max-height: 220px; overflow: auto; }.directory-person-option { display: grid; grid-template-columns: 30px minmax(0, 1fr) auto; gap: 9px; align-items: center; width: 100%; min-height: 52px; padding: 8px 10px; border: 1px solid #dce6f0; border-radius: 7px; color: #2b405d; background: #fff; text-align: left; cursor: pointer; transition: border-color .18s ease, background-color .18s ease; }.directory-person-option:hover { border-color: #89b7e8; background: #f4f9ff; }.directory-person-option:focus-visible { outline: 3px solid rgba(23, 105, 210, .25); outline-offset: 1px; }.directory-person-option:disabled { cursor: not-allowed; opacity: .62; }.directory-person-option strong, .directory-person-option small { display: block; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }.directory-person-option strong { font-size: 12px; }.directory-person-option small { margin-top: 3px; color: #718399; font-size: 10px; font-weight: 500; }.directory-person-option em { color: #2a6ba8; font-size: 11px; font-style: normal; font-weight: 750; white-space: nowrap; }.directory-person-option:disabled em { color: #77889b; }.directory-person-empty { margin: 0; padding: 11px; border: 1px dashed #cbd9e8; border-radius: 7px; color: #6d7d91; font-size: 11px; text-align: center; }.selected-directory-person { display: flex; align-items: center; justify-content: space-between; gap: 10px; padding: 9px 11px; border: 1px solid #b9d9bd; border-radius: 7px; color: #246345; background: #f1fbf4; font-size: 12px; }.selected-directory-person span { color: #5d7c6b; font-size: 11px; }
.configured-types, .template-config { margin-top: 18px; }.configured-type-list { display: grid; gap: 0; }.configured-type { display: flex; align-items: start; justify-content: space-between; gap: 20px; padding: 18px 22px; border-bottom: 1px solid #edf1f5; }.configured-type:last-child { border-bottom: 0; }.configured-type-main { min-width: 0; }.configured-type-title { display: flex; align-items: center; flex-wrap: wrap; gap: 8px; }.configured-type h4 { margin: 0; color: #243852; font-size: 14px; }.configured-type p { margin: 5px 0 0; color: var(--muted); font-size: 12px; }.configured-type .configured-type-policy { color: #315a88; font-weight: 700; }.configured-type .configured-type-description { max-width: 700px; line-height: 1.5; }.configured-type .type-route { margin: 11px 0 0; }.route-person small { display: block; margin-top: 4px; color: #72839a; font-size: 9px; font-weight: 600; }.configured-type-actions { display: flex; flex: none; gap: 7px; }.configured-type-actions .button { min-height: 34px; padding: 0 10px; font-size: 12px; }.type-form-heading { padding: 21px 23px 0; }.type-form-heading h3 { margin: 5px 0; color: #1b314e; font-size: 17px; }.type-form-heading p:not(.eyebrow) { margin: 0; color: var(--muted); font-size: 12px; line-height: 1.5; }.template-config { padding: 0 23px 23px; }.template-form { display: grid; grid-template-columns: repeat(3, 1fr); gap: 15px; margin-top: 19px; }.template-form label, .form-layout label { display: grid; gap: 7px; color: #465872; font-size: 12px; font-weight: 700; }.template-form input, .template-form select, .form-layout input, .form-layout select, .form-layout textarea { width: 100%; min-height: 40px; padding: 9px 10px; border: 1px solid #cad5e4; border-radius: 7px; color: #263953; background: #fff; }.template-form input:focus, .template-form select:focus, .form-layout input:focus, .form-layout select:focus, .form-layout textarea:focus { border-color: var(--blue-700); box-shadow: 0 0 0 3px rgba(23, 105, 210, .11); outline: 0; }.template-form .wide { grid-column: span 1; }.classification-policy { display: flex; grid-column: 1 / -1; flex-wrap: wrap; gap: 9px 18px; margin: 0; padding: 13px; border: 1px solid #d7e4f2; border-radius: 8px; background: #f8fbff; }.classification-policy legend { padding: 0 5px; color: #315a88; font-size: 12px; font-weight: 800; }.classification-policy label { display: flex; align-items: center; gap: 6px; color: #40536d; font-size: 12px; font-weight: 700; }.classification-policy input { width: auto; min-height: auto; padding: 0; border: 0; accent-color: var(--blue-700); }.classification-policy p { flex-basis: 100%; margin: 0; color: #657790; font-size: 11px; line-height: 1.5; }.template-nodes { grid-column: 1 / -1; display: grid; gap: 8px; }.template-node { display: grid; grid-template-columns: 28px minmax(112px, 150px) minmax(300px, 1fr) minmax(210px, .8fr) auto; gap: 9px; align-items: end; padding: 10px; border: 1px solid #e1e8f0; border-radius: 8px; background: #fafcff; }.template-node > span { padding-bottom: 11px; color: var(--blue-700); font-size: 13px; font-weight: 800; }.node-name-field { min-width: 0; font-size: 11px !important; }.node-control-field { display: flex; min-height: 40px; flex-wrap: wrap; gap: 5px 11px; margin: 0; padding: 7px 9px 8px; border: 1px solid #cad5e4; border-radius: 7px; background: #fff; }.node-control-field legend { padding: 0 4px; color: #465872; font-size: 11px; font-weight: 750; }.node-control-field label { display: flex; align-items: center; gap: 5px; color: #40536d; font-size: 11px; font-weight: 650; white-space: nowrap; }.node-control-field input { width: auto; min-height: auto; padding: 0; border: 0; accent-color: var(--blue-700); }.node-control-field small { color: #7a899c; font-size: 10px; font-weight: 500; }.node-actions { display: flex; gap: 5px; }.template-node .button { min-height: 38px; padding: 0 9px; }
.node-actions .button { min-height: 44px; }
.node-user-picker { display: grid; min-width: 0; gap: 7px; margin: 0; padding: 0; border: 0; }.node-user-picker legend { margin-bottom: 7px; padding: 0; color: #465872; font-size: 12px; font-weight: 700; }.node-user-search-status { min-height: 14px; color: #697b92; font-size: 10px; font-weight: 550; line-height: 1.4; }
.role-field { display: flex; flex-wrap: wrap; gap: 12px 18px; margin: 0; padding: 13px; border: 1px solid #dde6f0; border-radius: 8px; }.role-field legend { padding: 0 5px; color: #465872; font-size: 12px; font-weight: 700; }.role-field label { display: flex; align-items: center; gap: 6px; color: #4c5f78; font-size: 12px; font-weight: 600; }.role-field input { min-height: auto; width: auto; padding: 0; }
.form-hint { margin: -5px 0 0; color: var(--muted); font-size: 11px; line-height: 1.55; }

dialog { padding: 0; border: 0; box-shadow: 0 24px 70px rgba(18, 34, 54, .3); }dialog::backdrop { background: rgba(9, 20, 38, .48); }.modal { width: min(630px, calc(100vw - 28px)); border-radius: 12px; background: #fff; }.small-modal { width: min(510px, calc(100vw - 28px)); }.modal form { margin: 0; }.modal-header { display: flex; align-items: start; justify-content: space-between; gap: 15px; padding: 25px 26px 18px; border-bottom: 1px solid #e8edf3; }.modal-header h2 { margin: 6px 0; color: #1a2f4e; font-size: 20px; letter-spacing: -.03em; }.modal-header p:not(.eyebrow) { margin: 0; color: var(--muted); font-size: 12px; line-height: 1.55; }.modal-content { padding: 21px 26px; }.form-layout { display: grid; grid-template-columns: 1fr 1fr; gap: 15px; }.form-layout.single { grid-template-columns: 1fr; }.form-layout .full { grid-column: 1 / -1; }.form-layout textarea { min-height: 80px; resize: vertical; }.upload-field { padding: 14px; border: 1px dashed #9ebee5; border-radius: 8px; background: #f7fbff; }.upload-field input { padding: 0; border: 0; background: transparent; }.upload-field span { color: var(--muted); font-size: 11px; font-weight: 500; }.modal-footer { display: flex; justify-content: flex-end; gap: 9px; padding: 16px 26px; border-top: 1px solid #e8edf3; background: #fbfcfe; }.document-modal { width: min(980px, calc(100vw - 28px)); max-height: calc(100vh - 28px); border-radius: 12px; background: #fff; }.dialog-body { padding: 27px; }.dialog-header { display: flex; justify-content: space-between; gap: 14px; align-items: start; padding-bottom: 18px; border-bottom: 1px solid #e4eaf1; }.dialog-header h2 { margin: 6px 0 8px; color: #1b2f4c; font-size: 22px; }.detail-grid { display: grid; grid-template-columns: 1.1fr .9fr; gap: 28px; padding-top: 21px; }.detail-section { margin-bottom: 23px; }.detail-section h3 { margin: 0 0 11px; color: #30435c; font-size: 13px; }.timeline { display: grid; gap: 7px; }.timeline-item { padding: 10px 12px; border-left: 2px solid #d6e2f0; background: #fafcff; color: #30435c; font-size: 12px; }.timeline-item.current { border-left-color: var(--blue-700); background: #edf5ff; }.timeline-item span { display: block; margin-top: 3px; color: var(--muted); font-size: 11px; }.version-row, .audit-item { padding: 9px 0; border-bottom: 1px solid #edf1f5; font-size: 12px; }.version-row strong, .audit-item strong { display: block; color: #32445e; }.version-row span, .audit-item span { display: block; margin-top: 3px; color: var(--muted); font-size: 11px; }.audit-list { max-height: 216px; overflow: auto; }.detail-actions { display: flex; flex-wrap: wrap; gap: 8px; }.detail-actions .button { min-height: 36px; font-size: 12px; }
.toast { position: fixed; z-index: 80; bottom: 26px; left: 50%; max-width: calc(100vw - 28px); padding: 11px 15px; border-radius: 7px; color: #fff; background: #142845; box-shadow: var(--shadow); font-size: 13px; opacity: 0; pointer-events: none; transform: translate(-50%, 12px); transition: opacity .18s ease, transform .18s ease; }.toast.show { opacity: 1; transform: translate(-50%, 0); }.empty { padding: 30px 8px; color: var(--muted); font-size: 13px; text-align: center; }

@media (max-width: 1100px) { .app-shell { grid-template-columns: 216px minmax(0, 1fr); }.sidebar { padding-left: 11px; padding-right: 11px; }.content-area, .app-header { padding-left: 26px; padding-right: 26px; }.metric-grid { grid-template-columns: repeat(2, 1fr); }.workspace-grid, .organization-grid, .print-service-grid, .directory-sync-panel { grid-template-columns: 1fr; }.admin-console-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }.department-surface { min-height: auto; }.access-guide { grid-template-columns: 1fr; }.guide-step { border-right: 0; border-bottom: 1px solid #edf1f5; }.guide-step:last-child { border-bottom: 0; } }
@media (max-width: 760px) { .app-shell { display: block; }.sidebar { position: static; width: 100%; height: auto; padding: 13px 14px; }.product-mark { margin: 0 0 12px; }.primary-nav { display: flex; overflow-x: auto; padding-bottom: 3px; }.nav-item { flex: none; width: auto; min-height: 36px; padding: 0 9px; font-size: 12px; }.nav-item svg, .nav-count { display: none; }.sidebar-foot { display: none; }.app-header { min-height: auto; padding: 17px 16px; }.app-header h1 { font-size: 19px; }.live-indicator { display: none; }.content-area { padding: 18px 14px 40px; }.welcome-panel, .section-toolbar { display: grid; align-items: start; }.welcome-panel { padding: 21px; }.welcome-panel h2 { font-size: 22px; }.welcome-actions { align-self: auto; flex-wrap: wrap; }.metric-grid { grid-template-columns: 1fr 1fr; gap: 9px; }.metric { padding: 14px; }.metric strong { font-size: 24px; }.surface-header { padding: 17px 16px 13px; }.task-list, .request-list, .department-list { padding-left: 16px; padding-right: 16px; }.document-table th, .people-table th, .document-table td, .people-table td { padding-left: 14px; padding-right: 14px; }.document-table { min-width: 720px; }.people-table { min-width: 620px; }.toolbar-controls { flex-wrap: wrap; }.section-toolbar h2 { font-size: 21px; }.table-search { display: none; }.template-form { grid-template-columns: 1fr; }.template-form .wide { grid-column: auto; }.template-node { grid-template-columns: 25px 1fr; }.template-node select, .template-node .node-control-field { grid-column: 2; }.template-node .button { grid-column: 2; }.detail-grid { grid-template-columns: 1fr; }.form-layout { grid-template-columns: 1fr; }.form-layout .full { grid-column: auto; }.modal-header, .modal-content, .modal-footer { padding-left: 18px; padding-right: 18px; }.department-catalog { grid-template-columns: 1fr; }.catalog-card { min-height: 156px; }.type-detail-header { display: grid; }.type-grid { grid-template-columns: 1fr; padding: 15px; } }
@media (max-width: 760px) { .tab-section, .file-list-summary { padding-left: 16px; padding-right: 16px; }.file-tab { min-height: 40px; }.file-tabs { margin-right: -16px; padding-right: 16px; } }
@media (max-width: 760px) { .audit-filters { display: grid; padding-left: 16px; padding-right: 16px; }.audit-search { min-width: 0; }.header-admin-button, .header-audit-button { min-height: 36px; } }
@media (max-width: 760px) { .configured-type { display: grid; padding-left: 16px; padding-right: 16px; }.configured-type-actions { flex-wrap: wrap; }.template-node .node-actions { grid-column: 2; }.template-node .node-actions .button { grid-column: auto; } }
@media (max-width: 760px) { .template-node .node-user-picker { grid-column: 2; }.template-node .node-user-picker select { grid-column: auto; } }
@media (max-width: 760px) { .department-nav-tree { max-height: 210px; margin: 6px 0; padding-left: 8px; } }
@media (max-width: 760px) { .admin-console-grid { grid-template-columns: 1fr; }.admin-console-card { min-height: 0; }.admin-console-card p:not(.eyebrow) { min-height: 0; }.service-card-content { padding-left: 16px; padding-right: 16px; }.service-row, .print-job-row { align-items: start; flex-direction: column; }.service-row .mini-actions { justify-content: start; }.release-code b { font-size: 23px; } }
.header-admin-button, .header-audit-button { min-height: 44px; }
.audit-filter-grid { display: grid; grid-template-columns: repeat(4, minmax(150px, 1fr)); gap: 13px; padding: 18px 22px; border-bottom: 1px solid #e6edf5; background: #fbfdff; }.audit-filter-grid label, .audit-actor-filter { display: grid; min-width: 0; gap: 6px; color: #52677f; font-size: 11px; font-weight: 750; }.audit-filter-grid input, .audit-filter-grid select { width: 100%; min-height: 44px; padding: 0 10px; border: 1px solid #cad5e4; border-radius: 7px; color: #263953; background: #fff; font-size: 13px; }.audit-filter-grid input:focus, .audit-filter-grid select:focus { border-color: var(--blue-700); box-shadow: 0 0 0 3px rgba(23, 105, 210, .11); outline: 0; }.audit-actor-filter { position: relative; }.audit-actor-filter .text-button { width: fit-content; font-size: 11px; }.audit-custom-dates { display: grid; grid-column: span 2; grid-template-columns: 1fr 1fr; gap: 10px; }.audit-filter-actions { display: flex; grid-column: span 2; align-items: end; justify-content: flex-end; gap: 8px; }.audit-filter-actions .button, .audit-pagination .button { min-height: 44px; }.audit-pagination { display: flex; align-items: center; justify-content: flex-end; gap: 12px; padding: 14px 22px; border-top: 1px solid #edf1f5; color: #64768d; font-size: 12px; font-weight: 700; }.audit-table td:nth-child(4) strong, .audit-table td:nth-child(4) small { display: block; }.audit-table td:nth-child(4) small { margin-top: 3px; color: var(--muted); font-size: 10px; font-weight: 500; }
@media (max-width: 1100px) { .audit-filter-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (max-width: 760px) { .audit-filter-grid { grid-template-columns: 1fr; padding: 15px 16px; }.audit-custom-dates, .audit-filter-actions { grid-column: auto; }.audit-filter-actions { justify-content: stretch; }.audit-filter-actions .button { flex: 1; }.audit-pagination { justify-content: space-between; padding: 13px 16px; } }
@media (prefers-reduced-motion: reduce) { *, *::before, *::after { scroll-behavior: auto !important; animation-duration: .01ms !important; transition-duration: .01ms !important; } }

.file-scope-section { background: #fbfdff; }.file-scope-tabs { display: flex; flex-wrap: wrap; gap: 8px; }.file-scope-tab { display: inline-flex; min-height: 38px; align-items: center; gap: 8px; padding: 0 12px; border: 1px solid #d6e1ef; border-radius: 7px; color: #52677f; background: #fff; cursor: pointer; font-size: 12px; font-weight: 700; transition: color .18s ease, border-color .18s ease, background-color .18s ease; }.file-scope-tab span { min-width: 19px; padding: 2px 6px; border-radius: 999px; color: #667991; background: #edf2f7; font-size: 10px; text-align: center; }.file-scope-tab:hover { border-color: #8cb7e7; color: #1769d2; background: #f7fbff; }.file-scope-tab.active { border-color: #8a2f2a; color: #8a2f2a; background: #fff6f5; }.file-scope-tab.active span { color: #8a2f2a; background: #fbe7e5; }.file-scope-tab:focus-visible { outline: 3px solid rgba(23, 105, 210, .3); outline-offset: 2px; }
.role.department_manager { color: #185aa2; background: #e6f0ff; }
@media (max-width: 760px) { .file-scope-tab { min-height: 40px; } }

.document-filter-bar { display: grid; grid-template-columns: minmax(220px, 1fr) 128px 128px auto; gap: 10px; align-items: end; padding: 14px 22px; border-bottom: 1px solid #e8eef5; background: #fff; }.document-filter-bar label { display: grid; gap: 5px; color: #52677f; font-size: 11px; font-weight: 750; }.document-filter-bar input, .document-filter-bar select { width: 100%; min-height: 44px; padding: 0 10px; border: 1px solid #cad5e4; border-radius: 7px; color: #263953; background: #fff; font-size: 13px; }.document-filter-bar input:focus, .document-filter-bar select:focus { border-color: var(--blue-700); box-shadow: 0 0 0 3px rgba(23, 105, 210, .11); outline: 0; }.document-filter-search { min-width: 0; }.document-filter-bar .button { min-height: 44px; white-space: nowrap; }@media (max-width: 760px) { .document-filter-bar { grid-template-columns: 1fr 1fr; padding: 14px 16px; }.document-filter-search { grid-column: 1 / -1; }.document-filter-bar .button { grid-column: 1 / -1; } }

.editor-page { min-height: 100vh; margin: 0; color: #213550; background: #eef3f8; font-family: Inter, "PingFang SC", "Microsoft YaHei", sans-serif; }.editor-page .topbar { display: flex; align-items: center; justify-content: space-between; min-height: 54px; gap: 16px; padding: 0 20px; border-bottom: 1px solid #cfd9e6; background: #fff; }.editor-page .brand { color: #145faf; font-size: 13px; font-weight: 750; text-decoration: none; }.editor-page .topbar p { margin: 0; color: #5e7088; font-size: 12px; }.editor-page #editor-shell { position: relative; height: calc(100vh - 55px); overflow: hidden; }.editor-page #editor { height: 100%; }.editor-page #watermark { position: absolute; z-index: 10; top: 48%; left: 50%; width: min(720px, 90vw); color: rgba(38, 76, 118, .17); font-size: clamp(18px, 2.3vw, 34px); font-weight: 750; letter-spacing: .08em; line-height: 1.8; pointer-events: none; text-align: center; white-space: pre-line; transform: translate(-50%, -50%) rotate(-24deg); user-select: none; }@media (max-width: 760px) { .editor-page .topbar { min-height: 48px; padding: 0 13px; }.editor-page .topbar p { max-width: 50%; text-align: right; }.editor-page #editor-shell { height: calc(100vh - 49px); } }

/* 简化后的编辑流程与文件类型长期权限。 */
.product-logo { width: 48px; height: auto; flex: 0 0 auto; object-fit: contain; }
.workspace-grid { grid-template-columns: 1fr; }
.template-form .wide { grid-column: 1 / -1; }
.template-permission-section { grid-column: 1 / -1; padding: 16px; border: 1px solid #d9e4f0; border-radius: 10px; background: #fbfdff; }
.permission-section-heading { display: flex; align-items: start; justify-content: space-between; gap: 18px; margin-bottom: 13px; }
.permission-section-heading h4, .configured-type-main h5 { margin: 0; color: #263b57; font-size: 14px; }
.permission-section-heading p { max-width: 780px; margin: 5px 0 0; color: var(--muted); font-size: 11px; line-height: 1.55; }
.configured-type-main h5 { margin-top: 14px; font-size: 11px; letter-spacing: .04em; }
.empty-route { color: #78879a; background: #f3f6fa; }
.template-access-picker { display: grid; width: min(540px, 100%); gap: 7px; margin-bottom: 14px; }
.template-access-picker > label { color: #465872; font-size: 12px; font-weight: 700; }
.person-picker { position: relative; min-width: 0; }
.person-picker-input { width: 100%; min-height: 44px; padding: 0 12px; border: 1px solid #cad5e4; border-radius: 7px; color: #263953; background: #fff; font-size: 13px; }
.person-picker-input:focus { border-color: var(--blue-700); box-shadow: 0 0 0 3px rgba(23, 105, 210, .11); outline: 0; }
.person-picker-results { position: absolute; z-index: 20; top: calc(100% + 5px); right: 0; left: 0; display: grid; max-height: 280px; gap: 4px; padding: 6px; overflow-y: auto; border: 1px solid #cbd8e7; border-radius: 8px; background: #fff; box-shadow: 0 14px 32px rgba(24, 42, 67, .16); }
.person-picker-results[hidden] { display: none; }
.person-picker-option { display: grid; grid-template-columns: 32px minmax(0, 1fr) auto; min-height: 52px; align-items: center; gap: 10px; padding: 7px 10px; border: 1px solid transparent; border-radius: 7px; color: #2b405d; background: #fff; text-align: left; cursor: pointer; transition: border-color .18s ease, background-color .18s ease; }
.person-picker-option:hover, .person-picker-option.active { border-color: #9fc3e9; background: #eef6ff; }
.person-picker-option:focus-visible { outline: 3px solid rgba(23, 105, 210, .25); outline-offset: 0; }
.person-picker-option-copy { min-width: 0; }
.person-picker-option-copy strong, .person-picker-option-copy small { display: block; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.person-picker-option-copy strong { color: #273b58; font-size: 12px; }
.person-picker-option-copy small { margin-top: 3px; color: #6a7c93; font-size: 10px; font-weight: 500; }
.person-picker-option-action { color: var(--blue-700); font-size: 11px; font-weight: 750; }
.person-picker-empty { margin: 0; padding: 13px 10px; color: #63758c; font-size: 11px; line-height: 1.5; text-align: center; }
.person-picker-status { min-height: 15px; color: #697b92; font-size: 10px; font-weight: 550; line-height: 1.5; }
.selected-person-card { display: grid; min-width: 0; min-height: 52px; grid-template-columns: 34px minmax(0, 1fr); align-items: center; gap: 10px; padding: 8px 11px; border: 1px solid #c8d9eb; border-radius: 8px; background: #f6faff; }
.selected-person-avatar { display: grid; width: 32px; height: 32px; place-items: center; border-radius: 50%; color: #145da8; background: #dcecff; font-size: 11px; font-weight: 800; }
.selected-person-copy { min-width: 0; }
.selected-person-copy strong, .selected-person-copy small { display: block; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.selected-person-copy strong { color: #243a58; font-size: 12px; }
.selected-person-copy small { margin-top: 3px; color: #667991; font-size: 10px; font-weight: 500; }
.node-assignee-selection { display: grid; min-width: 0; gap: 7px; }
.node-assignee-selection.is-selected { grid-template-columns: minmax(0, 1fr) auto; align-items: center; }
.node-assignee-selection.is-editing { grid-template-columns: minmax(0, 1fr) auto; align-items: start; }
.node-assignee-selection.is-editing > .person-picker { grid-column: 1; grid-row: 1; }
.node-assignee-selection.is-editing > .person-picker-status { grid-column: 1 / -1; grid-row: 2; }
.node-assignee-selection.is-editing > .button { grid-column: 2; grid-row: 1; width: auto; }
.node-assignee-selection > .button { min-height: 44px; width: fit-content; }
.template-node .node-assignee-selection.is-selected .selected-person-card { min-height: 44px; grid-template-columns: 28px minmax(0, 1fr); gap: 8px; padding: 6px 9px; }
.template-node .node-assignee-selection.is-selected .selected-person-avatar { width: 28px; height: 28px; }
.template-node .node-assignee-selection.is-selected .selected-person-copy { display: flex; min-width: 0; align-items: baseline; gap: 7px; }
.template-node .node-assignee-selection.is-selected .selected-person-copy strong { flex: 0 1 auto; }
.template-node .node-assignee-selection.is-selected .selected-person-copy small { min-width: 0; flex: 1 1 auto; margin-top: 0; padding-left: 7px; border-left: 1px solid #d7e4f2; }
.template-access-list { display: grid; gap: 8px; }
.template-access-row { display: grid; grid-template-columns: minmax(240px, 1.15fr) minmax(310px, 1fr) auto; gap: 10px; align-items: center; padding: 11px; border: 1px solid #e1e8f0; border-radius: 8px; background: #fff; }
.base-view-permission { display: inline-flex; align-items: center; color: #176444; font-size: 11px; font-weight: 750; white-space: nowrap; }
.template-access-row > .button { min-height: 44px; }
.remove-access-user, .remove-node { color: #8f3a36 !important; }
.remove-access-user:hover, .remove-node:hover { border-color: #d4aaa7 !important; color: #762d29 !important; background: #fff7f6 !important; }

@media (max-width: 1180px) {
  .template-node { grid-template-columns: 28px minmax(112px, 150px) minmax(260px, 1fr); }
  .template-node .node-control-field, .template-node .node-actions { grid-column: 2 / -1; }
  .template-access-row { grid-template-columns: 1fr; }
}

@media (max-width: 760px) {
  .permission-section-heading { display: grid; }
  .permission-section-heading .button { width: 100%; }
  .template-permission-section { padding: 12px; }
  .template-node { grid-template-columns: 22px minmax(78px, 96px) minmax(0, 1fr); gap: 7px; padding: 8px; }
  .template-node .node-name-field { grid-column: 2; }
  .template-node .node-user-picker { grid-column: 3; }
  .template-node .node-control-field, .template-node .node-actions { grid-column: 2 / -1; }
  .template-access-picker { width: 100%; }
  .selected-person-card { min-height: 56px; }
  .template-node .node-assignee-selection.is-selected .selected-person-card { min-height: 44px; grid-template-columns: 24px minmax(0, 1fr); gap: 6px; padding: 5px 7px; }
  .template-node .node-assignee-selection.is-selected .selected-person-avatar { width: 24px; height: 24px; font-size: 9px; }
  .template-node .node-assignee-selection.is-selected .selected-person-copy { gap: 5px; }
  .template-node .node-assignee-selection.is-selected .selected-person-copy small { padding-left: 5px; font-size: 9px; }
  .template-node .node-assignee-selection.is-selected > .button { width: auto; min-height: 44px; padding: 0 7px; font-size: 11px; }
  .template-access-row > .button { width: 100%; }
  .template-access-row { padding: 9px; }
}

@media (max-width: 480px) {
  .template-node { grid-template-columns: 20px minmax(72px, 84px) minmax(0, 1fr); }
  .template-node .node-assignee-selection.is-selected .selected-person-card { grid-template-columns: minmax(0, 1fr); }
  .template-node .node-assignee-selection.is-selected .selected-person-avatar { display: none; }
}

/* 文件类型管理分层导航。 */
.template-department-navigation { overflow: hidden; }
.template-department-tabs { display: flex; gap: 8px; padding: 16px 20px; overflow-x: auto; border-bottom: 1px solid #edf1f5; background: #fbfdff; scrollbar-width: thin; }
.template-department-tabs > .empty { flex: 1 0 100%; margin: 0; }
.template-department-tab { display: inline-flex; min-height: 44px; flex: 0 0 auto; align-items: center; gap: 9px; padding: 0 14px; border: 1px solid #d2deeb; border-radius: 8px; color: #496079; background: #fff; font-size: 12px; font-weight: 750; transition: color .18s ease, border-color .18s ease, background-color .18s ease; }
.template-department-tab small { min-width: 22px; padding: 3px 6px; border-radius: 999px; color: #60758f; background: #edf2f7; font-size: 10px; text-align: center; }
.template-department-tab:hover { border-color: #8cb7e7; color: var(--blue-700); background: #f6faff; }
.template-department-tab[aria-pressed="true"] { border-color: var(--blue-700); color: #fff; background: var(--blue-700); box-shadow: 0 4px 10px rgba(23, 105, 210, .18); }
.template-department-tab[aria-pressed="true"] small { color: #14599f; background: #fff; }
.template-department-tab:focus-visible { outline: 3px solid rgba(23, 105, 210, .3); outline-offset: 2px; }
.template-department-prompt { margin: 0; padding: 34px 22px; color: #5e7088; font-size: 13px; text-align: center; }
.template-list-header .toolbar-controls { flex: none; }
#template-list-panel .configured-type-actions .button, .template-list-header .button { min-height: 44px; }
.template-editor-header { display: grid; gap: 14px; padding: 20px 23px 0; border-bottom: 1px solid #edf1f5; }
.template-editor-header > .text-button { min-height: 44px; justify-self: start; padding: 0; }
.template-editor-header .type-form-heading { padding: 0 0 18px; }
.template-editor-department { display: flex; align-items: center; gap: 12px; margin-top: 18px; padding: 13px 15px; border: 1px solid #d7e4f2; border-radius: 8px; color: #5e7088; background: #f8fbff; font-size: 11px; }
.template-editor-department strong { color: #24456d; font-size: 13px; }
#template-department-field[hidden] { display: none; }

@media (max-width: 760px) {
  .template-department-tabs { margin-right: -1px; padding: 13px 16px; }
  .template-list-header { display: grid; align-items: start; }
  .template-list-header .toolbar-controls { width: 100%; justify-content: space-between; }
  .template-editor-header { padding: 16px 16px 0; }
  .template-editor-department { align-items: start; flex-direction: column; gap: 4px; }
  .template-config { padding-right: 16px; padding-left: 16px; }
}
