/* 谱云集 · 家谱录入管理工作台 */
@charset "UTF-8";
:root{color-scheme:light;--ink:#19392f;--text:#34473e;--muted:#7a877e;--green:#28634f;--green-hover:#1e513f;--green-soft:#eaf2eb;--paper:#f6f6f1;--line:#e3e8df;--white:#fff;--red:#ae4e43;--red-soft:#fff1ed;--gold:#a67e42;--shadow:0 8px 28px rgba(22,49,37,.045);--radius:14px;--sans:"Segoe UI","PingFang SC","Microsoft YaHei",sans-serif}
*{box-sizing:border-box}
[hidden]{display:none!important}
html{min-width:360px;min-height:100%;background:var(--paper)}
body{margin:0;color:var(--text);font:14px/1.65 var(--sans);letter-spacing:.01em;-webkit-font-smoothing:antialiased}
button,input,select,textarea{font:inherit}
button{cursor:pointer}
button,input,select,textarea{outline:none}
button:focus-visible,a:focus-visible{outline:3px solid #9fbfac;outline-offset:3px}
input:focus,select:focus,textarea:focus{border-color:#7a9f87;box-shadow:0 0 0 3px rgba(71,126,87,.1)}
button:disabled{cursor:not-allowed;opacity:.48;transform:none!important}
a{color:var(--green);text-decoration:none}
button{border:1px solid transparent;border-radius:8px;padding:9px 15px;background:var(--green);color:white;transition:background .16s,border-color .16s,box-shadow .16s,transform .16s}
button:hover{background:var(--green-hover)}
input,select,textarea{min-width:0;border:1px solid #dce3d9;border-radius:8px;padding:10px 12px;background:#fff;color:var(--ink);transition:border-color .16s,box-shadow .16s}
input::placeholder,textarea::placeholder{color:#9aa39b}
input[type=checkbox]{width:16px;height:16px;padding:0;accent-color:var(--green);flex:none;cursor:pointer}
input[type=file]{padding:7px;font-size:12px;background:#fcfdf9;max-width:100%}
input[type=file]::file-selector-button{background:#edf2e9;border:0;border-radius:5px;padding:7px 9px;color:var(--green);margin-right:10px;cursor:pointer}
select{padding-right:30px;cursor:pointer}
textarea{min-height:110px;resize:vertical}
h1,h2,h3,p{margin:0}
h1,h2,h3{color:var(--ink)}
h1{font-size:29px;line-height:1.35;letter-spacing:.035em;font-weight:650}
h2{font-size:17px;font-weight:650}
h3{font-size:15px;font-weight:650}
small{font-size:12px}
svg{display:block;flex:none}
hr{height:1px;background:var(--line);border:0;margin:22px 0}
.muted,.cell-meta{color:var(--muted)}
.row,.action-row{display:flex;align-items:center;gap:10px;flex-wrap:wrap}
:is(.btn,button.primary,button.secondary,button.danger){display:inline-flex;align-items:center;justify-content:center;gap:7px;min-height:39px;white-space:nowrap;font-size:13px;font-weight:550}
:is(.btn,button.primary,button.secondary,button.danger) svg{width:16px;height:16px}
:is(.btn,button.primary,button.secondary,button.danger).primary{background:var(--green);color:white;box-shadow:0 3px 5px #214e3d10}
:is(.btn,button.primary,button.secondary,button.danger).primary:hover{background:var(--green-hover);box-shadow:0 4px 9px #214e3d20}
:is(.btn,button.primary,button.secondary,button.danger).secondary{background:white;color:#4b6153;border-color:#dbe3d8}
:is(.btn,button.primary,button.secondary,button.danger).secondary:hover{background:#f7faf4;border-color:#b5c8b9}
:is(.btn,button.primary,button.secondary,button.danger).ghost{background:transparent;color:#607565;border-color:transparent}
:is(.btn,button.primary,button.secondary,button.danger).ghost:hover{background:#e9eee4;color:var(--green)}
:is(.btn,button.primary,button.secondary,button.danger).danger{background:var(--red-soft);color:var(--red);border-color:#f3dad3}
:is(.btn,button.primary,button.secondary,button.danger).danger:hover{background:#ffe5df;border-color:#e9b8ad}
:is(.btn,button.primary,button.secondary,button.danger).small,:is(.btn,button.primary,button.secondary,button.danger).sm{padding:6px 10px;min-height:31px;font-size:12px}
.text-button{display:inline-flex;align-items:center;gap:4px;background:transparent;border:0;padding:5px 6px;color:var(--green);font-size:12px;font-weight:600;white-space:nowrap}
.text-button:hover{background:#edf3e8}
.text-button.danger{color:var(--red)}
.icon-button,.close-button,.modal-close{display:inline-flex;align-items:center;justify-content:center;width:34px;height:34px;padding:0;background:#f3f5ef;border-color:#e5e9df;color:#6b7d6c;font-size:20px;line-height:1}
.icon-button:hover,.close-button:hover,.modal-close:hover{background:#e5ece0;color:var(--ink)}
:is(.shell,.app-shell){display:grid;grid-template-columns:238px minmax(0,1fr);min-height:100vh}
.sidebar{position:sticky;top:0;display:flex;flex-direction:column;align-self:start;height:100vh;min-height:640px;padding:32px 20px 24px;background:#173c2e;color:#d0dfd2;overflow:hidden}
.sidebar:after{content:"";position:absolute;width:250px;height:250px;border:1px solid #c6d6b512;border-radius:50%;bottom:-102px;left:-80px;box-shadow:0 0 0 32px #c6d6b506,0 0 0 65px #c6d6b505;pointer-events:none}
.brand{display:flex;gap:12px;align-items:center;padding:0 9px 33px}
.brand-mark{display:flex;align-items:center;justify-content:center;flex:none;width:41px;height:45px;border:1px solid #c1d6b451;border-radius:7px;background:#2b5139;color:#e4e5cb;font-family:"Songti SC","SimSun",serif;font-size:25px;font-weight:600}
.brand-mark svg{width:26px;height:26px}
.brand-copy{display:flex;flex-direction:column;line-height:1.5}
.brand-copy b,.brand-copy strong{font-size:20px;color:#f1f1dd;letter-spacing:.15em;font-family:"Songti SC","SimSun",serif}
.brand-copy small,.brand-copy span{margin-top:4px;color:#9db49f;font-size:10px;letter-spacing:.19em}
.sidebar nav{display:flex;flex-direction:column;gap:9px}
.nav-label{font-size:10px;font-weight:600;color:#78977f;letter-spacing:.13em;padding:0 15px;margin:14px 0 13px}
:is(.nav-item,.nav-button){display:flex;align-items:center;gap:13px;width:100%;min-height:47px;padding:12px 15px;text-align:left;border:1px solid transparent;border-radius:8px;color:#b2c6b6;background:transparent;font-size:13px;font-weight:500}
:is(.nav-item,.nav-button):hover{background:#234935;color:#f3f5e8}
:is(.nav-item,.nav-button).active{background:#dfe7cb;color:#254832;border-color:#e1e8d2;box-shadow:0 3px 12px #071d2520}
.nav-icon{width:20px;height:20px;display:inline-flex;align-items:center;justify-content:center;color:currentColor;font-size:17px}
.nav-icon svg{width:19px;height:19px}
:is(.nav-item,.nav-button) .nav-arrow{margin-left:auto;opacity:.7}
:is(.sidebar-bottom,.sidebar-footer){position:relative;z-index:1;margin-top:auto;padding:22px 10px 0;color:#87a58d;font-size:11px;line-height:1.9}
:is(.sidebar-bottom,.sidebar-footer) strong{display:block;color:#b9cdbb;font-size:12px;font-weight:500;margin-bottom:3px}
:is(.sidebar-bottom,.sidebar-footer) .system-label{display:flex;align-items:center;gap:7px;margin-bottom:8px}
:is(.sidebar-bottom,.sidebar-footer) .dot{width:5px;height:5px;border-radius:50%;background:#b2c89b}
.workspace{min-width:0}
.topbar{display:flex;align-items:center;justify-content:space-between;gap:20px;min-height:78px;padding:0 40px;background:#fafbf7;border-bottom:1px solid var(--line)}
.breadcrumb{display:flex;align-items:center;gap:11px;color:#9aa497;font-size:12px}
.breadcrumb #page-label,.breadcrumb strong{color:#405842;font-weight:500}
.topbar-actions{display:flex;align-items:center;gap:18px;font-size:12px;color:#657560}
.topbar-actions :is(.btn,button.primary,button.secondary,button.danger){min-height:32px;font-size:12px}
.live-pill{display:inline-flex;align-items:center;gap:6px;color:#6d8169;font-size:11px;white-space:nowrap}
.live-pill:before{content:"";width:6px;height:6px;background:#78a177;border-radius:50%;box-shadow:0 0 0 3px #eef3e7}
#admin-name{display:inline-flex;align-items:center;gap:7px;border-left:1px solid #dfe5d7;padding-left:17px;color:#425a45}
.page{padding:31px 40px 40px;max-width:1740px;margin:0 auto}
.page-heading{display:flex;align-items:center;justify-content:space-between;gap:20px;margin-bottom:27px}
.eyebrow{display:flex;align-items:center;gap:8px;color:#8d997f;font-size:10px;font-weight:600;letter-spacing:.18em;text-transform:uppercase;margin-bottom:8px}
.eyebrow:before{content:"";display:block;width:17px;height:1px;background:#a1b18d}
.subtitle{color:#84907d;font-size:12px;line-height:1.8;margin-top:10px;max-width:710px}
.page-tools{display:flex;align-items:center;gap:9px;flex-wrap:wrap}
.page-tools small{font-size:11px;color:#909b89}
.stats-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:17px;margin-bottom:26px}
.stat-card{position:relative;display:flex;flex-direction:column;text-align:left;min-height:148px;border:1px solid #e4e8dc;border-radius:12px;background:#fff;color:var(--ink);padding:20px 22px 17px;box-shadow:0 2px 9px #29473602;overflow:hidden}
.stat-card:hover{background:#fff;border-color:#a8bfa4;box-shadow:0 7px 18px #32553609;transform:translateY(-2px)}
.stat-card .stat-top{display:flex;align-items:center;justify-content:space-between;width:100%}
.stat-icon{position:absolute;right:21px;top:22px;display:flex;align-items:center;justify-content:center;width:33px;height:33px;color:#609075;background:#edf4eb;border-radius:9px}
.stat-icon svg{width:17px;height:17px}
.stat-label{font-size:12px;color:#75826c;font-weight:500}
.stat-value{display:block;color:#224a35;line-height:1.2;margin:11px 0 11px;font-size:35px;font-weight:500;letter-spacing:-.04em;font-variant-numeric:tabular-nums}
:is(.stat-footer,.stat-foot){display:flex;align-items:center;justify-content:space-between;gap:6px;width:100%;font-size:10px;color:#9aa38f}
:is(.stat-footer,.stat-foot) strong,:is(.stat-footer,.stat-foot) em{color:#738c68;font-weight:400;font-style:normal}
.stat-card[data-kind=online]{background:#eef3e8;border-color:#dbe6d1}
.stat-card[data-kind=online]:hover{background:#eaf2e3}
.stat-card[data-kind=online] .stat-icon{background:#dfead5}
.stat-card[data-kind=update] .stat-icon{background:#f3f0e4;color:#a09059}
.stat-card[data-kind=delete] .stat-icon{background:#f9eeea;color:#b88974}
.stat-card.active{border-color:var(--green);box-shadow:0 0 0 2px #28634f12}
.panel{border:1px solid var(--line);background:#fff;border-radius:var(--radius);box-shadow:var(--shadow);overflow:hidden;margin-bottom:23px}
.panel-header{display:flex;align-items:center;justify-content:space-between;gap:18px;padding:21px 23px 18px;border-bottom:1px solid #edf0e7}
.panel-title{display:flex;align-items:center;gap:9px;font-size:15px;font-weight:650;color:var(--ink)}
.panel-title .count,.count-pill{display:inline-flex;align-items:center;justify-content:center;min-width:22px;height:20px;border:1px solid #e2e9db;border-radius:5px;background:#f4f7ee;color:#879774;font-size:10px;line-height:1;padding:0 6px;font-weight:500}
.panel-subtitle{font-size:11px;color:#949e8a;margin-top:4px}
.panel-actions{display:flex;align-items:center;gap:9px;flex-wrap:wrap}
.panel-body{padding:22px 23px}
.panel-footer{padding:11px 22px;border-top:1px solid #eef1e7;background:#fcfdf8;color:#949e88;font-size:11px}
.table-wrap{overflow-x:auto}
table{border-collapse:collapse;width:100%;text-align:left;font-size:12px}
th{padding:12px 22px;background:#fafbf6;color:#8a957e;border-bottom:1px solid #eaf0e3;font-size:10px;font-weight:500;letter-spacing:.04em;white-space:nowrap}
td{padding:17px 22px;border-bottom:1px solid #eef1e7;vertical-align:middle;color:#63715c}
tbody tr:last-child td{border-bottom:0}
tbody tr:hover td{background:#fbfcf7}
td strong{color:#344e38;font-weight:600}
th:last-child,td:last-child{text-align:right}
td .row{gap:6px;justify-content:flex-end}
td .badge{white-space:nowrap}
.person-cell{display:flex;gap:11px;align-items:center;min-width:120px}
.avatar,.person-avatar{display:inline-flex;align-items:center;justify-content:center;flex:none;width:34px;height:34px;border-radius:9px;background:#e9efdf;color:#68815d;font-size:13px;font-weight:500;overflow:hidden}
.avatar img,.person-avatar img{width:100%;height:100%;object-fit:cover}
.avatar.blue{background:#e9f0f1;color:#6f9296}
.avatar.gold{background:#f3efdf;color:#a3925e}
.person-avatar.female{background:#f4ebe5;color:#b28d78}
.person-avatar.large{width:68px;height:76px;border-radius:12px;font-size:26px;font-weight:500}
.cell-title{color:#3c523c;font-weight:600;font-size:12px;line-height:1.55}
.cell-meta{font-size:10px;line-height:1.7;margin-top:3px;color:#99a18f}
.badge{display:inline-flex;align-items:center;gap:5px;min-height:22px;padding:2px 8px;border:1px solid #e0e9d8;border-radius:5px;color:#718664;background:#f1f6eb;font-size:10px;line-height:1.5;white-space:nowrap;font-weight:500}
.badge.success,.badge.green,.badge.online,.badge.create,.badge.created{background:#edf5e8;color:#6b8e55;border-color:#deead2}
.badge.warning,.badge.gold,.badge.update,.badge.updated{background:#f8f4e7;color:#ab935c;border-color:#efe5c8}
.badge.danger,.badge.red,.badge.delete,.badge.deleted{background:#fcf0eb;color:#b0785f;border-color:#f3ddd2}
.badge.neutral,.badge.gray,.badge.offline{background:#f5f6f0;color:#9aa28f;border-color:#e9ece0}
.badge.blue,.badge.read{background:#edf4f4;color:#6d9694;border-color:#d9e9e8}
.status-dot{width:5px;height:5px;border-radius:50%;background:currentColor}
.empty-state{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:6px;min-height:150px;padding:26px;color:#99a48d;font-size:12px;text-align:center}
.empty-state svg{width:30px;height:30px;color:#bac9ab;margin-bottom:5px}
.empty-state strong{color:#839175;font-weight:500;font-size:13px}
.filter-bar{display:flex;align-items:center;gap:10px;flex-wrap:wrap;padding:15px 22px;border-bottom:1px solid #edf1e6;background:#fff}
.filter-bar input,.filter-bar select{font-size:12px;padding:8px 10px;background:#fbfcf8;border-color:#e3e9dc;min-height:35px}
.filter-bar .search-field{margin-left:auto;min-width:220px}
.search-field{position:relative;display:flex;align-items:center}
.search-field svg{position:absolute;left:11px;width:15px;height:15px;color:#99a48d;pointer-events:none}
.search-field input{width:100%;padding-left:33px}
.filter-pills{display:flex;gap:5px}
.filter-pill{padding:5px 11px;background:transparent;color:#939e86;border-color:transparent;border-radius:6px;font-size:11px;min-height:30px}
.filter-pill:hover{background:#f3f6ec;color:#647d54}
.filter-pill.active{background:#edf3e5;color:#587747;border-color:#e3ecd6}
:is(.split-panels,.content-grid){display:grid;grid-template-columns:minmax(0,1.55fr) minmax(320px,1fr);gap:23px;align-items:start}
:is(.split-panels,.content-grid) .panel{min-width:0}
:is(#audit-list,.audit-list){padding:0 22px}
:is(.event-row,.audit-row){display:flex;align-items:flex-start;gap:13px;padding:18px 0;border-bottom:1px solid #eef1e7;position:relative;cursor:pointer;transition:background .15s}
:is(.event-row,.audit-row):last-child{border-bottom:0}
:is(.event-row,.audit-row):hover{background:#fafcf5}
:is(.event-icon,.audit-icon){display:flex;align-items:center;justify-content:center;flex:none;width:31px;height:31px;border-radius:9px;background:#edf3e5;color:#799462;margin-top:1px}
:is(.event-icon,.audit-icon) svg{width:14px;height:14px}
:is(.event-icon,.audit-icon).update{background:#f8f2e3;color:#ac9763}
:is(.event-icon,.audit-icon).delete{background:#fcf0e9;color:#bb8a70}
:is(.event-icon,.audit-icon).login{background:#eff1ec;color:#97a18e}
:is(.event-content,.audit-content){min-width:0;flex:1}
.event-title{display:flex;align-items:center;gap:7px;flex-wrap:wrap;color:#617057;font-size:12px;line-height:1.7}
.event-title strong{color:#375535;font-weight:600}
.event-description{color:#9da58f;font-size:11px;margin-top:3px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;max-width:100%}
:is(.event-time,.audit-meta){display:block;flex:none;margin-left:auto;padding-top:3px;color:#a2ab95;font-size:10px;white-space:nowrap;font-variant-numeric:tabular-nums}
.event-link{margin-top:3px;font-size:11px;color:#789566}
.events-footer{padding:12px;text-align:center;border-top:1px solid #edf1e5}
#events table th,#events table td{padding-top:12px;padding-bottom:12px}
.field,.form-field{display:flex;flex-direction:column;gap:7px;font-size:12px;color:#697b5f}
.field>label,.form-field>label{font-size:12px;color:#7b8970;display:block}
.field input,.field select,.field textarea,.form-field input,.form-field select,.form-field textarea{width:100%}
.field small,.form-field small,.field-help{font-size:10px;color:#a1aa95;line-height:1.7}
.check-field{display:flex;align-items:center;gap:8px;font-size:12px;color:#697b5f}
.form-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:18px 22px}
.span-2{grid-column:1/-1}
.form-section{padding:23px;border-top:1px solid #edf1e6}
.form-section:first-child{border-top:0}
.form-section-title{font-size:12px;font-weight:600;margin-bottom:16px;color:#536f45}
#create-user{display:flex;align-items:end;gap:13px;padding:22px;flex-wrap:wrap}
#create-user .field{flex:1;min-width:180px}
#grant-form{padding:22px}
#grant-form>label{display:inline-flex;align-items:center;gap:8px;margin:0 20px 17px 0;font-size:12px;color:#748366}
#grant-form input[type=password]{margin-left:5px}
#grants{border:1px solid #e5ebdc;border-radius:9px;overflow:auto;margin:8px 0 20px}
#grants td,#grants th{padding:14px 15px;text-align:center}
#grants td:first-child,#grants th:first-child{text-align:left;min-width:130px}
#grants input[type=checkbox]{vertical-align:middle}
.permission-toolbar{display:flex;gap:20px;align-items:center;flex-wrap:wrap;padding:18px;background:#f8faf2;border:1px solid #eaf0df;border-radius:9px;margin-bottom:20px}
.permission-note{display:flex;gap:9px;color:#8c9a7c;background:#f9fbf4;border:1px solid #e7efdb;border-radius:8px;padding:13px;font-size:11px;line-height:1.8;margin-top:14px}
.book-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:20px;margin:0 0 24px}
.book-card{display:flex;flex-direction:column;min-width:0;border:1px solid var(--line);border-radius:12px;background:#fff;overflow:hidden;box-shadow:var(--shadow);transition:transform .15s,box-shadow .15s}
.book-card:hover{transform:translateY(-2px);box-shadow:0 7px 20px #25402a09}
:is(.book-card-top,.book-card-header){display:flex;gap:17px;padding:22px 22px 17px;align-items:center}
.book-cover{position:relative;display:flex;align-items:center;justify-content:center;flex:none;width:54px;height:72px;border-radius:2px 6px 6px 2px;background:#2b5139;color:#f2f0d9;box-shadow:3px 2px 0 #e5e7d8,4px 2px 0 #c4cfb7;font-family:"Songti SC","SimSun",serif;font-size:19px;letter-spacing:.06em;writing-mode:vertical-rl;border-left:5px solid #23452e;overflow:hidden}
.book-cover:after{content:"";position:absolute;inset:6px 6px 6px 3px;border:1px solid #c1d0a044;border-radius:1px}
.book-card:nth-child(3n+2) .book-cover{background:#6a7252;border-left-color:#545e3e}
.book-card:nth-child(3n+3) .book-cover{background:#74674b;border-left-color:#5e543a}
.book-card h3{font-size:16px;line-height:1.6;margin:0 0 7px;color:#345036}
:is(.book-card-top,.book-card-header) .cell-meta{font-size:10px}
:is(.book-metrics,.book-stats){display:flex;gap:20px;padding:0 22px 20px;color:#8e9a80;font-size:11px}
:is(.book-metrics,.book-stats) strong{display:block;color:#526d47;font-size:19px;font-weight:500;line-height:1.4;margin-bottom:3px}
:is(.book-metrics,.book-stats)>div{flex:1;border-right:1px solid #ebefe2}
:is(.book-metrics,.book-stats)>div:last-child{border-right:0}
:is(.book-actions,.book-card-footer){display:flex;gap:7px;align-items:center;padding:13px 20px;border-top:1px solid #edf1e4;background:#fcfdf9}
:is(.book-actions,.book-card-footer) :is(.btn,button.primary,button.secondary,button.danger){font-size:11px;min-height:32px;padding:6px 9px}
:is(.book-actions,.book-card-footer) :is(.btn,button.primary,button.secondary,button.danger):first-child{flex:1}
.book-forms{display:grid;grid-template-columns:1fr 1fr;gap:22px}
#import-book,#create-book,#decrypt-file{display:flex;align-items:end;gap:12px;flex-wrap:wrap}
#import-book .field,#create-book .field,#decrypt-file .field{flex:1;min-width:170px}
#import-book label,#decrypt-file label{display:flex;flex-direction:column;gap:8px;max-width:100%}
/* Dialogs and audit details. */
dialog{padding:0;color:var(--text);background:#fff;border:1px solid #dce5d5;border-radius:16px;width:760px;max-width:calc(100vw - 48px);max-height:calc(100vh - 64px);box-shadow:0 28px 100px #071d2750;overflow:auto}
dialog::backdrop{background:rgba(21,40,30,.46);backdrop-filter:blur(3px)}
:is(.modal-header,.dialog-header),.modal-head{display:flex;justify-content:space-between;gap:20px;align-items:center;padding:23px 27px;border-bottom:1px solid #e6ecdE;background:#fdfef9}
:is(.modal-header,.dialog-header) h2,.modal-head h2{font-size:20px;line-height:1.5;color:#294a30;font-weight:600}
:is(.modal-header,.dialog-header) .subtitle,.modal-head .subtitle{font-size:11px;margin-top:5px}
.dialog-kicker{color:#91a07e;font-size:10px;letter-spacing:.12em;text-transform:uppercase;margin-bottom:5px}
:is(.modal-body,.dialog-body){padding:25px 27px}
:is(.modal-footer,.dialog-footer),.person-modal-footer{display:flex;align-items:center;justify-content:flex-end;gap:10px;padding:17px 27px;border-top:1px solid #e9eedf;background:#fbfcf6}
:is(.modal-footer,.dialog-footer) .muted,.person-modal-footer .muted{margin-right:auto;font-size:11px}
.detail-summary{padding:20px 22px;background:#f5f8ef;border:1px solid #e5edd9;border-radius:10px;margin-bottom:21px}
.detail-summary h3{font-size:18px;margin:9px 0;color:#36592f}
.detail-meta{display:flex;gap:18px;flex-wrap:wrap;font-size:11px;color:#94a185}
.detail-meta strong{font-weight:500;color:#657f54;margin-right:5px}
.change-list{display:flex;flex-direction:column;gap:14px}
.change-card{border:1px solid #e5eada;border-radius:10px;overflow:hidden}
.change-header{display:flex;align-items:center;justify-content:space-between;gap:15px;background:#f9fbf4;padding:14px 17px;border-bottom:1px solid #e9eedf}
.change-header h3{font-size:13px}
.diff-grid{display:grid;grid-template-columns:1fr 1fr;gap:12px;padding:16px}
.diff-grid>.before,.diff-grid>.after{padding:14px;border-radius:8px;background:#fbf7f3;border:1px solid #f0e5dc;min-width:0}
.diff-grid>.after{background:#f3f8ec;border-color:#e0ecd2}
.diff-heading{font-size:10px;letter-spacing:.05em;color:#b19b83;margin-bottom:9px}
.after .diff-heading{color:#8aa26c}
.diff-row{display:grid;grid-template-columns:100px 1fr 1fr;border-bottom:1px solid #eef1e6;font-size:12px}
.diff-row:last-child{border-bottom:0}
.diff-row>div{padding:12px 14px;word-break:break-word;white-space:pre-wrap}
:is(.diff-field,.diff-label){background:#fcfdf8;color:#8c997c;font-size:11px}
.diff-row .before{background:#fffaf6;color:#ab8f76}
.diff-row .after{background:#f6faef;color:#6a874e}
.value-block{white-space:pre-wrap;overflow-wrap:anywhere;font-size:12px;line-height:1.9;color:#657757}
.audit-summary{display:flex;align-items:center;gap:12px;margin-bottom:20px}
.raw-details{margin-top:18px;border-top:1px solid #e9eedd;padding-top:14px;color:#93a081;font-size:11px}
.raw-details summary{cursor:pointer}
pre{white-space:pre-wrap;overflow-wrap:anywhere;font-size:11px;color:#8a9779;background:#f7faf2;padding:15px;border-radius:8px;max-height:280px;overflow:auto}
/* The genealogy viewer keeps the pedigree and person summary side by side. */
#tree-dialog{width:1360px;max-width:calc(100vw - 54px);height:min(850px,calc(100vh - 58px));overflow:hidden}
#tree-dialog[open]{display:flex;flex-direction:column}
#tree-dialog :is(.modal-header,.dialog-header),#tree-dialog .modal-head{padding:19px 25px;flex:none}
#tree-dialog :is(.modal-body,.dialog-body){padding:0;min-height:0;display:flex;flex:1;flex-direction:column;overflow:hidden}
#tree-dialog .tree-toolbar{display:flex;align-items:center;gap:10px;padding:12px 23px;background:#fdfef8;border-bottom:1px solid #e6eddc;flex-wrap:wrap;flex:none}
#tree-dialog .tree-toolbar .search-field{width:250px}
#tree-dialog .tree-toolbar input,#tree-dialog .tree-toolbar select{font-size:12px;padding-top:8px;padding-bottom:8px}
#tree-dialog .tree-toolbar :is(.btn,button.primary,button.secondary,button.danger){font-size:11px;min-height:33px;padding:6px 10px}
#tree-dialog .tree-toolbar .muted{font-size:11px;margin-left:auto}
.tree-layout{display:grid;grid-template-columns:minmax(0,1fr) 340px;min-height:0;flex:1;overflow:hidden}
#tree-body{position:relative;min-width:0;min-height:0;padding:25px 27px;overflow:auto;background-color:#f4f7ed;background-image:radial-gradient(#c8d5b8 0.55px,transparent .55px);background-size:15px 15px}
.tree-sidebar,#person-detail{padding:23px;border-left:1px solid #e0e9d5;background:#fff;overflow:auto;min-height:0;min-width:0}
.tree-sidebar #person-detail{padding:0;border-left:0;overflow:visible}
.tree-section{margin-bottom:28px}
.tree-section-title{display:flex;align-items:center;gap:10px;font-size:12px;font-weight:600;color:#5f7950;letter-spacing:.04em;margin-bottom:16px}
.tree-section-title:before{content:"";width:5px;height:16px;border-radius:3px;background:#86a46c}
.tree-context,.tree-hint{color:#94a17f;font-size:11px;line-height:1.8;margin-bottom:17px}
.tree-list,.tree-group{list-style:none;margin:0;padding:0}
.tree-node{position:relative;margin:0;padding:0}
.tree-node .tree-list,.tree-node .tree-group{margin-left:15px;padding-left:25px;border-left:1px solid #c7d7b8}
.tree-row{display:flex;align-items:center;gap:6px;position:relative;padding:5px 0;min-height:59px;min-width:max-content}
.tree-node .tree-node>.tree-row:before{content:"";position:absolute;left:-25px;top:32px;width:23px;height:1px;background:#c7d7b8}
.tree-toggle{display:inline-flex;align-items:center;justify-content:center;width:23px;height:23px;flex:none;border:1px solid #d5e0c8;border-radius:6px;padding:0;background:#fcfdf8;color:#88a172;font-size:13px;z-index:1}
.tree-toggle:hover{background:#e7efdc;color:#4e783c;border-color:#bed1ad}
.tree-toggle svg{width:11px;height:11px}
.tree-toggle:disabled{opacity:.35;background:transparent;border-color:transparent}
.tree-person{display:flex;align-items:center;gap:11px;min-width:220px;max-width:380px;min-height:53px;padding:9px 13px;border:1px solid #e0e9d4;border-radius:9px;background:#fff;color:#45613b;text-align:left;box-shadow:0 2px 3px #29432803}
.tree-person:hover{background:#f9fcf3;border-color:#afc79b;box-shadow:0 4px 7px #48623708}
.tree-person.selected{background:#e5efda;border-color:#91ad75;box-shadow:0 0 0 2px #8dad6a14;color:#38562e}
.tree-person .person-avatar{width:32px;height:33px;font-size:12px;border-radius:7px;background:#edf3e5;color:#779666}
.tree-person.selected .person-avatar{background:#cfdfbd;color:#54773c}
.tree-person .person-avatar.female{background:#f6ede7;color:#b59177}
.tree-person-text{display:flex;flex-direction:column;min-width:0;flex:1}
.tree-person-text strong{font-size:12px;font-weight:600;line-height:1.45}
.tree-person-text small,.tree-meta{color:#9aa98b;font-size:10px;font-weight:400;line-height:1.7}
.tree-person.selected .tree-person-text small{color:#83a06b}
.tree-flags{display:flex;align-items:center;gap:5px;margin-left:auto}
.tree-flags .badge{font-size:9px;padding:2px 5px;min-height:19px;background:#f7faf1}
.tree-empty{padding:50px 30px;text-align:center;font-size:12px;color:#91a27a}
.tree-more{margin:6px 0 6px 30px;font-size:11px}
.person-summary-head{display:flex;align-items:center;gap:14px;margin-bottom:21px}
.person-summary-head .person-avatar{width:52px;height:60px;font-size:23px;border-radius:10px}
.person-summary h2,.person-summary-head h2{font-size:21px;font-weight:600;line-height:1.5}
.person-summary-head small{color:#97a486;font-size:11px}
.person-summary .badge{margin-top:7px}
.person-summary .action-row{gap:8px;margin-top:20px}
.person-summary .action-row :is(.btn,button.primary,button.secondary,button.danger){font-size:11px;padding:7px 11px;flex:1;min-height:35px}
.person-summary .action-row :is(.btn,button.primary,button.secondary,button.danger).danger{flex:none}
.person-overview{padding:20px;background:#f5f9ed;border-radius:10px;border:1px solid #e2ebd6}
.person-excerpt{padding:15px 0;color:#82936f;font-size:12px;line-height:1.9;border-top:1px solid #e7eedb;margin-top:17px;white-space:pre-wrap;overflow-wrap:anywhere}
.detail-grid{display:grid;grid-template-columns:90px minmax(0,1fr);gap:12px 15px;margin:0;font-size:12px;line-height:1.7}
.detail-grid dt{color:#9aa88a}
.detail-grid dd{margin:0;color:#577044;overflow-wrap:anywhere;white-space:pre-wrap}
.person-meta.detail-grid{grid-template-columns:68px minmax(0,1fr);gap:12px}
#person-dialog,.person-dialog{width:920px;max-height:calc(100vh - 46px)}
.person-modal-hero{display:flex;align-items:center;gap:18px;padding:24px 29px;background:linear-gradient(105deg,#f4f8ec,#fdfef9);border-bottom:1px solid #e8efdd}
.person-modal-hero h2{font-size:25px;font-weight:600;margin-bottom:4px;letter-spacing:.04em}
.person-title-meta{display:flex;align-items:center;gap:10px;flex-wrap:wrap;font-size:11px;color:#9aa789;margin-top:7px}
.person-tabs{position:sticky;top:0;z-index:2;display:flex;align-items:center;gap:25px;padding:0 28px;border-bottom:1px solid #e4edda;background:#fff;overflow-x:auto}
.person-tabs .tab-btn{position:relative;flex:none;padding:15px 1px 13px;background:transparent;border:0;border-radius:0;color:#a0ad8e;font-size:12px;line-height:1.5;white-space:nowrap}
.person-tabs .tab-btn:hover{color:#517439;background:transparent}
.person-tabs .tab-btn.active{color:#517439;font-weight:600}
.person-tabs .tab-btn.active:after{position:absolute;bottom:0;left:0;right:0;height:3px;border-radius:2px 2px 0 0;background:#7e9d62;content:""}
.person-panels{padding:25px 29px;min-height:250px}
.person-panel .detail-section{padding:0 0 23px;margin-bottom:23px;border-bottom:1px solid #eaf0df}
.person-panel .detail-section:last-child{padding-bottom:0;margin-bottom:0;border-bottom:0}
.detail-section h3{font-size:13px;color:#6a8252;margin-bottom:17px;display:flex;align-items:center;gap:8px}
.detail-section h3:before{content:"";display:block;width:3px;height:12px;border-radius:2px;background:#a5bc8e}
.relation-chips{display:flex;align-items:center;flex-wrap:wrap;gap:9px}
.relation-chip{display:inline-flex;align-items:center;gap:8px;padding:7px 11px;background:#f4f8ed;border:1px solid #e2ecd5;border-radius:7px;color:#728c5b;font-size:12px}
.relation-chip:hover{background:#e8f1dc;color:#547639}
.relation-chip small{color:#a0ae8a;font-size:10px}
.prose-card{font-size:12px;color:#718963;line-height:2;background:#f8faf3;border:1px solid #e8efdf;padding:18px;border-radius:9px;white-space:pre-wrap;overflow-wrap:anywhere}
.photo-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:15px}
.photo-card{border:1px solid #e5ecdb;border-radius:9px;overflow:hidden;background:#f9fbf6}
.photo-card img{display:block;max-width:100%;width:100%;height:190px;object-fit:contain;background:#eef4e7}
.photo-card figcaption,.photo-card .cell-meta{padding:9px 12px;margin:0;font-size:11px;color:#8b9d77}
.person-form .form-grid,.person-panel .form-grid{gap:18px}
.person-form .field input,.person-form .field select,.person-form .field textarea,.person-panel .field input,.person-panel .field select,.person-panel .field textarea{font-size:12px;border-color:#dfe8d5;padding:9px 11px}
.person-form .field textarea,.person-panel .field textarea{min-height:120px}
.person-modal-footer{position:sticky;bottom:0;z-index:2;box-shadow:0 -5px 12px #38562803}
.person-modal-footer .action-row{margin-left:auto}
.person-modal-footer .error{color:var(--red);font-size:12px;margin-right:auto}
.inline-confirm{padding:17px 20px;border:1px solid #eedad0;border-radius:9px;background:#fff8f2;color:#a8836a;font-size:12px;margin-top:18px}
.inline-confirm p{margin-bottom:12px}
.inline-confirm :is(.btn,button.primary,button.secondary,button.danger){font-size:11px;min-height:32px}
/* Login and system feedback. */
:is(.login-scene,.login-screen){min-height:100vh;display:grid;grid-template-columns:1.05fr 1fr;background:#f5f7ef}
.login-brand{position:relative;display:flex;flex-direction:column;justify-content:center;align-items:flex-start;gap:20px;padding:12%;background:#173c2e;color:#c5d6b8;overflow:hidden}
.login-brand:before,.login-brand:after{content:"";position:absolute;width:500px;height:500px;border:1px solid #bbcca61a;border-radius:50%;left:-200px;bottom:-190px;pointer-events:none}
.login-brand:after{width:630px;height:630px;left:-265px;bottom:-255px}
.login-brand .brand{padding:0 0 30px;position:relative;z-index:1}
.login-brand h1{font-size:36px;line-height:1.7;color:#e2e8cc;letter-spacing:.09em;font-family:"Songti SC","SimSun",serif;font-weight:500}
.login-brand p{max-width:370px;font-size:12px;color:#91b294;line-height:2.1}
.login-brand .login-tag{color:#8ea781;font-size:10px;letter-spacing:.15em}
.login-card,#login{align-self:center;justify-self:center;width:370px;max-width:calc(100% - 60px);padding:32px 0}
.login-card h1,#login h1{font-size:25px;margin-bottom:9px;color:#345331}
.login-card .subtitle,#login .subtitle{margin:0 0 28px;color:#99a689;font-size:12px}
#login label{display:flex;flex-direction:column;gap:8px;font-size:12px;color:#829570;margin-bottom:19px}
#login input{background:#fcfdf7;padding:12px 14px;border-color:#d9e4cc;width:100%}
#login :is(.btn,button.primary,button.secondary,button.danger),#login>button{width:100%;margin-top:7px;padding:12px;font-size:13px;font-weight:500}
.login-note{margin-top:20px;color:#a1af90;font-size:10px;line-height:1.9;text-align:center}
#message,.toast{position:fixed;z-index:10000;top:20px;left:50%;transform:translateX(-50%);max-width:min(600px,calc(100vw - 40px));padding:13px 20px;border:1px solid #d6e3cc;border-radius:9px;background:#f8fcef;color:#5e7e48;box-shadow:0 7px 30px #18392519;font-size:12px;line-height:1.8;white-space:pre-wrap}
#message:empty{display:none}
#message.error,.toast.error{background:#fff6f1;color:#a55d48;border-color:#eed7ca}
.toast.success{background:#f0f8e8;color:#658149;border-color:#d6e6c8}
.error-message,.error{color:var(--red)}
.loading{display:flex;align-items:center;justify-content:center;gap:10px;min-height:160px;color:#9bae85;font-size:12px}
.spinner{width:15px;height:15px;border:2px solid #e0ebd3;border-top-color:#7c9b60;border-radius:50%;animation:spin .7s linear infinite}
@keyframes spin{to{transform:rotate(360deg)}}
@media(min-width:1650px){.page{padding:36px 48px 48px}.topbar{padding:0 48px}.stats-grid{gap:22px}.stat-card{min-height:159px;padding:23px 25px}.stat-value{font-size:38px}.book-grid{grid-template-columns:repeat(4,minmax(0,1fr))}}
@media(max-width:1200px){:is(.shell,.app-shell){grid-template-columns:208px minmax(0,1fr)}.sidebar{padding:28px 15px 20px}.brand{padding-left:5px;gap:9px}.brand-copy b,.brand-copy strong{font-size:18px}.brand-mark{width:36px;height:40px}.page{padding:27px}.topbar{padding:0 27px}.stats-grid{gap:12px}.stat-card{padding:17px}.stat-icon{right:16px;top:18px}:is(.split-panels,.content-grid){grid-template-columns:1fr}.book-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.tree-layout{grid-template-columns:minmax(0,1fr) 295px}.tree-sidebar,#person-detail{padding:19px}th,td{padding-left:17px;padding-right:17px}}
@media(max-width:920px){:is(.shell,.app-shell){grid-template-columns:184px minmax(0,1fr)}.sidebar{padding:24px 11px 20px}.brand-copy small,.brand-copy span{font-size:9px;letter-spacing:.09em}.brand-copy b,.brand-copy strong{font-size:17px}.brand-mark{width:31px;height:36px;font-size:20px}:is(.nav-item,.nav-button){padding:11px 12px;gap:10px;font-size:12px}.page{padding:24px 21px}.topbar{padding:0 21px;min-height:68px}.topbar-actions{gap:10px}.topbar-actions .live-pill{display:none}.page-heading{align-items:flex-start}h1{font-size:25px}.stats-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:13px}.stat-card{min-height:136px}.stat-value{font-size:32px}.book-grid{gap:15px}:is(.book-card-top,.book-card-header){padding:17px;gap:13px}:is(.book-actions,.book-card-footer){padding:12px 15px}.book-forms{grid-template-columns:1fr}.tree-layout{grid-template-columns:minmax(0,1fr) 270px}#tree-body{padding:19px}.tree-person{min-width:188px}.person-summary .action-row :is(.btn,button.primary,button.secondary,button.danger){flex:auto}.tree-sidebar,#person-detail{padding:16px}.person-meta.detail-grid{grid-template-columns:55px minmax(0,1fr);font-size:11px}#tree-dialog .tree-toolbar .search-field{width:190px}}
@media(max-width:680px){html{min-width:360px}:is(.shell,.app-shell){display:block}.sidebar{position:relative;height:auto;min-height:0;padding:17px 18px 12px;overflow:visible}.brand{padding:0 0 16px}.brand-mark{width:30px;height:34px}.brand-copy{flex-direction:row;align-items:baseline;gap:12px}.brand-copy b,.brand-copy strong{font-size:18px}.brand-copy small,.brand-copy span{font-size:9px}.sidebar nav{flex-direction:row;gap:6px}:is(.nav-item,.nav-button){justify-content:center;width:auto;flex:1;min-height:39px;padding:7px 5px;font-size:11px;gap:6px}.nav-icon,.nav-icon svg{width:15px;height:15px}.sidebar .nav-label,:is(.sidebar-bottom,.sidebar-footer),.sidebar:after,.nav-arrow{display:none}.topbar{min-height:56px;padding:0 19px;gap:9px}.breadcrumb{font-size:10px;gap:7px}.topbar-actions{font-size:10px;gap:7px}.topbar-actions :is(.btn,button.primary,button.secondary,button.danger){font-size:10px;padding:5px 7px}#admin-name{padding-left:0;border-left:0}.page{padding:22px 16px}.page-heading{margin-bottom:21px;gap:15px;flex-wrap:wrap}.page-tools{gap:6px}.page-tools :is(.btn,button.primary,button.secondary,button.danger){font-size:11px;min-height:34px;padding:6px 10px}.eyebrow{font-size:8px;margin-bottom:6px}h1{font-size:23px}.subtitle{font-size:11px;margin-top:7px}.stats-grid{gap:10px;margin-bottom:19px}.stat-card{padding:15px 16px;min-height:130px}.stat-icon{width:28px;height:28px;right:15px;top:17px}.stat-icon svg{width:14px;height:14px}.stat-label{font-size:11px}.stat-value{font-size:29px;margin:12px 0 9px}:is(.stat-footer,.stat-foot){font-size:9px}.panel{border-radius:11px;margin-bottom:18px}.panel-header{padding:17px 16px;gap:12px}.panel-title{font-size:13px}.panel-subtitle{font-size:10px}.panel-actions :is(.btn,button.primary,button.secondary,button.danger){font-size:10px;padding:5px 8px;min-height:31px}.panel-body{padding:17px 16px}th,td{padding:12px 14px;font-size:11px}th{font-size:9px}.person-cell{gap:8px}.avatar{width:29px;height:29px;font-size:11px}.cell-title{font-size:11px}.cell-meta{font-size:9px}.filter-bar{padding:12px 15px;gap:8px}.filter-bar .search-field{width:100%;min-width:0;margin-left:0}.filter-bar input,.filter-bar select{font-size:11px}.book-grid{grid-template-columns:1fr}:is(.book-card-top,.book-card-header){padding:19px}:is(.book-actions,.book-card-footer){padding:12px 17px}:is(.book-metrics,.book-stats){padding-left:20px;padding-right:20px}.book-cover{width:48px;height:65px}.book-forms{gap:0}:is(#audit-list,.audit-list){padding:0 16px}:is(.event-row,.audit-row){gap:10px;padding:15px 0}:is(.event-icon,.audit-icon){width:28px;height:28px}.event-title{font-size:11px}.event-description{font-size:10px}:is(.event-time,.audit-meta){font-size:9px}.form-grid{grid-template-columns:1fr;gap:15px}.span-2{grid-column:auto}#create-user{padding:17px;align-items:stretch}#create-user .field{flex-basis:100%}#create-user :is(.btn,button.primary,button.secondary,button.danger){width:100%}#grant-form{padding:16px}#grant-form>label{margin-right:13px;font-size:11px;gap:6px}#grant-form input[type=password]{margin-left:0}.permission-toolbar{gap:13px;padding:13px}.permission-toolbar .field{width:100%}dialog{max-width:calc(100vw - 20px);max-height:calc(100vh - 24px);border-radius:12px}:is(.modal-header,.dialog-header),.modal-head{padding:18px}:is(.modal-header,.dialog-header) h2,.modal-head h2{font-size:18px}:is(.modal-body,.dialog-body){padding:18px}:is(.modal-footer,.dialog-footer),.person-modal-footer{padding:13px 18px;flex-wrap:wrap}.diff-grid{padding:12px;gap:8px}.diff-row{grid-template-columns:65px 1fr 1fr;font-size:11px}.diff-row>div{padding:9px}.detail-meta{gap:8px 13px;font-size:10px}.detail-summary{padding:15px}.detail-summary h3{font-size:16px}#tree-dialog{max-width:calc(100vw - 14px);height:calc(100vh - 20px)}#tree-dialog :is(.modal-header,.dialog-header),#tree-dialog .modal-head{padding:15px}#tree-dialog .tree-toolbar{padding:10px 13px;gap:7px}#tree-dialog .tree-toolbar .search-field{width:100%}#tree-dialog .tree-toolbar .muted{font-size:10px}.tree-layout{display:flex;flex-direction:column;overflow:auto}#tree-body{flex:none;min-height:260px;max-height:54vh;padding:17px 13px}.tree-sidebar,#person-detail{border-left:0;border-top:1px solid #dfe8d3;flex:none;overflow:visible;padding:19px}.tree-sidebar #person-detail{border-top:0;padding:0}.tree-person{min-width:196px;min-height:48px;padding:7px 10px;gap:9px}.tree-person-text strong{font-size:11px}.tree-node .tree-list,.tree-node .tree-group{padding-left:19px}.tree-node .tree-node>.tree-row:before{width:17px;left:-19px}.person-summary-head{margin-bottom:16px}.person-summary .action-row{margin-top:14px}.person-meta.detail-grid{grid-template-columns:72px minmax(0,1fr);gap:10px;font-size:12px}.person-modal-hero{padding:19px;gap:14px}.person-modal-hero h2{font-size:22px}.person-avatar.large{width:54px;height:65px;font-size:22px}.person-tabs{padding:0 19px;gap:22px}.person-tabs .tab-btn{font-size:11px}.person-panels{padding:20px}.person-panels .detail-grid{grid-template-columns:68px 1fr;gap:11px;font-size:11px}.photo-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.photo-card img{height:140px}:is(.login-scene,.login-screen){display:flex;flex-direction:column}.login-brand{padding:30px 28px;gap:12px}.login-brand .brand{padding-bottom:8px}.login-brand h1{font-size:25px;line-height:1.7}.login-brand p{font-size:11px}.login-brand .login-tag{display:none}.login-card,#login{width:100%;max-width:calc(100% - 56px);padding:34px 0}.login-card h1,#login h1{font-size:23px}.toast,#message{top:12px;padding:10px 15px;font-size:11px}.topbar .breadcrumb>span:first-child{display:none}}
@media(prefers-reduced-motion:reduce){*,*:before,*:after{scroll-behavior:auto!important;transition:none!important;animation:none!important}}
@media print{.sidebar,.topbar,.page-tools,.panel-actions,.filter-bar,:is(.modal-footer,.dialog-footer),.person-modal-footer,:is(.btn,button.primary,button.secondary,button.danger),.text-button{display:none!important}:is(.shell,.app-shell){display:block}.page{padding:0}.panel{box-shadow:none;break-inside:avoid}.stats-grid{gap:10px}body{background:white}dialog[open]{position:static;max-height:none;max-width:none;width:100%;box-shadow:none;border:0}.tree-layout{overflow:visible}.tree-sidebar,#tree-body{overflow:visible}.person-tabs{display:none}}

/* Shared workspace component aliases. */
.nav-list{display:flex;flex-direction:column;gap:9px}.view{padding:30px 40px 40px;max-width:1740px;margin:0 auto}.workspace .topbar .page-heading{margin:0;display:block}.topbar .page-heading h1{font-size:17px;font-weight:600}.topbar .page-heading .eyebrow{font-size:9px;margin-bottom:4px}.hero-banner{display:flex;align-items:center;justify-content:space-between;gap:20px;padding:0 0 25px}.hero-copy h1{font-size:28px;font-weight:650;letter-spacing:.03em}.hero-copy p{margin-top:10px;color:#8f9b82;font-size:12px}.hero-banner .hero-meta{font-size:11px;color:#9ba58d}.stat-foot{display:flex;align-items:center;justify-content:space-between;width:100%;font-size:10px;color:#99a58b}.toolbar{display:flex;gap:11px;align-items:center;flex-wrap:wrap}.audit-row{border-width:0 0 1px;border-style:solid;border-color:#eef1e7;background:transparent;width:100%;text-align:left;border-radius:0;color:#617057}.audit-row:hover{background:#fafcf5}.audit-content strong{color:#375535;font-weight:600;font-size:12px}.audit-content p{font-size:11px;color:#9da58f;margin-top:3px}.audit-meta{margin-top:4px;font-size:10px;color:#a1aa94}.diff-before{background:#fffaf6;color:#ab8f76}.diff-after{background:#f6faef;color:#6a874e}.dialog-header .icon-button{width:31px;height:31px}.book-stats span{font-size:11px;color:#95a285}.book-card-header>div:last-child{min-width:0}.book-card-header h3{overflow-wrap:anywhere}.login-screen>.login-card{width:380px;padding:25px 0}.login-card form#login{width:100%;max-width:none;padding:0}.login-brand>.brand{margin-bottom:10px}.sidebar-footer{border-top:1px solid #c6d6b51a;margin-top:auto}.badge.muted{background:#f5f6f0;color:#9aa28f;border-color:#e9ece0}.dialog-body>.toolbar{margin-bottom:20px}.dialog-body .field{margin-bottom:2px}.dialog-footer>small{margin-right:auto;color:#97a389;font-size:11px}.dialog-body .muted{font-size:12px}.dialog-body .audit-list{padding:0}.dialog-body .filter-bar{padding:0 0 17px;margin-bottom:6px}.dialog-body .filter-bar .search-field{flex:1}.audit-content .badge{margin:0 6px}.audit-row>.text-button{margin-left:auto}.form-grid label.field>span{font-size:12px;color:#7b8970}.form-grid .field input[type=checkbox]{width:16px}.view .panel>.toolbar{padding:20px 23px}.book-grid>.empty-state{grid-column:1/-1;border:1px dashed #dbe5cf;border-radius:12px;min-height:230px}.hero-banner .primary{box-shadow:0 3px 9px #22483110}.panel .table-wrap:only-child{border-radius:14px}.toolbar .field{min-width:170px}.permission-status{padding:12px 15px;border-radius:8px;background:#f6f9ef;color:#899e72;font-size:11px}.audit-icon.create{background:#edf3e5;color:#799462}.audit-icon.update{background:#f8f2e3;color:#ac9763}.audit-icon.delete{background:#fcf0e9;color:#bb8a70}.hero-decoration{color:#a7b996;font-size:11px;letter-spacing:.1em}.stat-card:first-child .stat-value{color:#315838}@media(min-width:1650px){.view{padding:36px 48px 48px}}@media(max-width:1200px){.view{padding:27px}}@media(max-width:920px){.view{padding:24px 21px}.hero-copy h1{font-size:25px}}@media(max-width:680px){.view{padding:22px 16px}.nav-list{flex-direction:row;gap:6px}.hero-banner{align-items:flex-start;flex-wrap:wrap;padding-bottom:21px}.hero-copy h1{font-size:23px}.hero-copy p{font-size:11px}.view .panel>.toolbar{padding:16px}.login-screen>.login-card{width:100%;max-width:calc(100% - 56px);padding:34px 0}.topbar .page-heading h1{font-size:14px}.toolbar .field{width:100%}}

/* Final HTML and audit comparison refinements. */
.sidebar .brand>div{display:flex;flex-direction:column;gap:3px;line-height:1.5}.sidebar .brand>div strong{font-family:"Songti SC","SimSun",serif;font-size:20px;color:#f1f1dd;letter-spacing:.15em}.sidebar .brand>div small{font-size:9px;letter-spacing:.14em;color:#9db49f}.nav-caption{font-size:10px;letter-spacing:.12em;color:#75947c;margin:6px 15px 15px}.nav-button>span{width:19px;font-size:18px;line-height:1;text-align:center}.sidebar-footer p{font-size:9px;line-height:1.8;color:#749378;margin-top:8px}.sidebar-footer>.status-dot{display:inline-block;background:#9cb88c;margin-right:4px;vertical-align:middle}.hero-copy h2{font-size:29px;font-weight:600;line-height:1.4;color:#24492e;letter-spacing:.035em}.hero-copy>p.eyebrow{font-size:10px;margin:0 0 9px;color:#97a286;letter-spacing:.12em}.panel-header>div>h2{font-size:15px;font-weight:600;color:#345338}.panel-header>div>p{font-size:10px;line-height:1.8;color:#98a08d;margin-top:5px}.panel-body:has(>.table-wrap){padding:0}.panel-body:has(>.audit-list){padding-top:0;padding-bottom:0}.panel-body>.table-wrap{border-radius:0 0 13px 13px}.content-grid .panel{height:100%;margin-bottom:0}.content-grid{margin-bottom:23px;align-items:stretch}.view>.toolbar{justify-content:space-between;margin-bottom:21px;gap:16px}.view>.toolbar h2{font-size:25px;font-weight:600;line-height:1.5}.view>.toolbar p{font-size:11px;color:#99a58a;margin-top:5px}.view>.filter-bar{background:transparent;padding:0;border:0;margin-bottom:22px}.view>.filter-bar .search-field{margin-left:0;width:320px;max-width:100%;background:white;border:1px solid #dce6d0;border-radius:7px;padding-left:13px;gap:2px;color:#97aa82;font-size:21px;overflow:hidden}.view>.filter-bar .search-field input{border:0;background:white;padding:10px 12px;width:100%;box-shadow:none}.view>.filter-bar .search-field:focus-within{border-color:#aac495;box-shadow:0 0 0 3px #cadcba24}.stat-card:first-child{background:#eef3e8;border-color:#dbe6d1}.stat-card:first-child:hover{background:#eaf2e3}.stat-card:after{content:"↗";position:absolute;top:19px;right:20px;display:flex;align-items:center;justify-content:center;width:29px;height:29px;border-radius:7px;background:#f0f5e9;color:#94a77b;font-size:17px}.stat-card:first-child:after{content:"◉";background:#e0ebd3;font-size:13px;color:#91a376}.stat-card:nth-child(3):after{background:#f5f0e2;color:#b1a06e}.stat-card:nth-child(4):after{background:#f8eee8;color:#ba9980}.stat-foot{margin-top:auto;padding-top:2px}.audit-content{display:flex;flex-direction:column;gap:5px}.audit-content>.audit-meta{margin:0;padding:0;font-size:10px;color:#9aa78c;display:block;white-space:normal;line-height:1.7}.audit-row>div.audit-meta{display:flex;align-items:flex-end;flex-direction:column;gap:6px;margin-left:auto;padding-top:1px;font-size:10px;line-height:1.7}.audit-row>div.audit-meta>span:last-child{font-size:10px;color:#90a178}.audit-icon.danger{background:#fbefe8;color:#b48b70}.audit-content strong{line-height:1.8;font-size:12px}.audit-row{padding-left:2px;padding-right:2px}.book-card-header{justify-content:space-between;align-items:flex-start;padding-bottom:15px}.book-card>h3{padding:0 23px;margin:0 0 12px;font-size:17px;line-height:1.7;overflow-wrap:anywhere}.book-card>.book-stats{display:flex;padding-bottom:12px;gap:14px}.book-card>.book-stats span{font-size:11px;color:#93a17f}.book-card>p.muted{padding:0 23px 18px;color:#a8b195;font-size:10px;margin-top:auto}.book-card-footer{position:relative;align-items:center;justify-content:space-between;gap:10px}.book-card-footer>button.primary{flex:1}.export-menu{position:relative;flex:none;color:#7e9166;font-size:11px}.export-menu summary{list-style:none;border:1px solid #e2ead6;border-radius:6px;padding:7px 9px;cursor:pointer;background:white;white-space:nowrap}.export-menu summary:after{content:"⌄";margin-left:9px;color:#a6b192}.export-menu[open] summary{background:#f1f6e8;border-color:#c5d7b0;margin-bottom:6px}.export-menu[open]{z-index:3}.export-menu>button{display:block;width:100%;font-size:10px;min-height:29px;padding:5px 8px;text-align:left;margin-top:4px;background:#fff;border-color:#e0e8d3;color:#809468}.book-card:has(.export-menu[open]){overflow:visible}.pagination{display:flex;gap:14px;align-items:center;justify-content:center;padding-top:20px;margin-top:8px;border-top:1px solid #eaf0df;font-size:11px;color:#9dab89}.password-panel{margin:23px 0;padding:20px;border:1px solid #e2ebd5;background:#f9fbf4;border-radius:9px}.password-panel h3{font-size:13px;margin-bottom:5px}.password-panel .muted{font-size:11px;line-height:1.8;color:#9ca98a}.password-panel .toolbar{margin-top:13px;gap:9px}.password-panel input{flex:1;min-width:160px;font-size:13px}.account-options{display:flex;gap:21px;flex-wrap:wrap;margin:21px 0 26px;font-size:12px;color:#7b9067}.account-options label{display:inline-flex;align-items:center;gap:7px}.section-heading{margin:24px 0 16px}.section-heading h3{font-size:14px;margin-bottom:7px}.section-heading p{font-size:11px;color:#98a788}.form-error{color:#aa7057;font-size:12px;line-height:1.8;margin-top:12px;white-space:pre-wrap}.form-error:empty{display:none}.workspace-footer{display:flex;justify-content:space-between;gap:15px;padding:7px 40px 27px;color:#a7b195;font-size:10px}.workspace-footer span{color:#b1b99f}.dialog-wide{width:min(1000px,94vw)}.dialog #create-book,.dialog #import-book,.dialog #decrypt-file{display:block}.dialog .dialog-body>.field{margin:20px 0}.dialog .dialog-body>p{font-size:12px;line-height:1.9;color:#839873}.dialog .dialog-body>p.muted{margin-top:17px}.dialog .dialog-body>input[type=file]{display:block;width:100%;margin-top:20px}.dialog .dialog-body h3{font-size:14px;margin-bottom:14px}.detail-summary{font-size:12px;line-height:2;color:#7a9164}.detail-summary p{margin-top:5px}.detail-summary .badge{margin-bottom:6px}.diff-grid{display:block;padding:0;margin:15px 0 22px;border:1px solid #e3ebd5;border-radius:9px;overflow:hidden}.diff-grid>.diff-row{display:grid;grid-template-columns:120px minmax(0,1fr) minmax(0,1fr);border-bottom:1px solid #e5edda;font-size:14px;line-height:1.9;gap:0}.diff-grid>.diff-row:last-child{border-bottom:0}.diff-grid>.diff-row>*{display:block;margin:0;padding:14px 16px;border:0;border-right:1px solid #e5edda;border-radius:0;white-space:pre-wrap;overflow-wrap:anywhere;text-align:left;min-width:0}.diff-grid>.diff-row>*:last-child{border-right:0}.diff-grid .diff-label{background:#fafcf6;color:#748967;font-size:12px;font-weight:500}.diff-grid .diff-before{background:#fffaf6;color:#92745d}.diff-grid .diff-after{background:#f5f9ef;color:#466537}.diff-grid>.diff-head{font-size:11px;color:#96a481;background:#eef4e4;font-weight:500}.diff-grid>.diff-head>*{padding-top:10px;padding-bottom:10px}.dialog-body>.primary{margin-top:0}.login-card h2{font-size:28px;font-weight:600;letter-spacing:.04em;color:#3b5b32;margin:8px 0 9px}.login-card>p.muted{font-size:12px;margin-bottom:26px;color:#9aaa89}.login-card .eyebrow{font-size:9px}.login-card>small.muted{display:block;font-size:10px;margin-top:18px;text-align:center;color:#a6b397}.login-feature{font-size:10px;color:#7c9d70;letter-spacing:.1em;border-top:1px solid #aec7931a;padding-top:22px;margin-top:25px}.login-brand>.brand-mark{width:49px;height:55px;font-size:31px;margin-bottom:10px}.login-brand .eyebrow{font-size:9px;color:#749a68;letter-spacing:.18em}.login-brand .eyebrow:before{background:#759368}.login-card button.primary{margin-top:7px}#grants input[type=datetime-local]{padding:7px;font-size:11px}#grants td,#grants th{padding:13px 9px}#user-list .action-row{gap:6px}.data-table .muted{font-size:10px;margin-top:4px}.data-table .action-row{gap:7px}.data-table td .action-row{justify-content:flex-start}.data-table td:last-child .action-row{justify-content:flex-end}.content-grid .data-table th,.content-grid .data-table td{padding-left:16px;padding-right:16px}.dialog-footer{clear:both}.tree-dialog .tree-toolbar{font-size:12px}.tree-dialog .tree-toolbar .field{gap:0}.tree-dialog .tree-toolbar button{font-size:11px;padding:7px 10px}#person-dialog{width:min(1000px,94vw);max-height:90vh}
@media(max-width:1200px){.workspace-footer{padding-left:27px;padding-right:27px}.hero-copy h2{font-size:26px}.sidebar .brand>div strong{font-size:18px}.sidebar .brand>div small{font-size:8px}.content-grid .data-table th,.content-grid .data-table td{padding-left:14px;padding-right:14px}}
@media(max-width:920px){.hero-copy h2{font-size:24px}.hero-banner>button{font-size:11px}.workspace-footer{padding-left:21px;padding-right:21px}.sidebar .brand>div strong{font-size:17px;letter-spacing:.1em}.sidebar .brand>div small{font-size:8px;letter-spacing:.05em}.password-panel{padding:17px}.diff-grid>.diff-row{grid-template-columns:100px minmax(0,1fr) minmax(0,1fr)}}
@media(max-width:680px){.nav-caption{display:none}.sidebar .brand>div{flex-direction:row;gap:10px;align-items:baseline}.sidebar .brand>div strong{font-size:18px}.sidebar .brand>div small{font-size:9px}.nav-button>span{width:13px;font-size:14px}.hero-copy h2{font-size:23px}.hero-copy>p.eyebrow{font-size:9px}.hero-banner>button{min-height:33px;font-size:10px}.panel-header>div>h2{font-size:13px}.panel-header>div>p{font-size:9px}.content-grid{gap:18px;margin-bottom:18px}.audit-row>div.audit-meta{font-size:9px;max-width:95px;white-space:normal;line-height:1.7}.audit-content strong{font-size:11px}.audit-content>.audit-meta{font-size:9px}.audit-row>div.audit-meta>span:last-child{font-size:9px}.workspace-footer{padding:0 17px 22px;flex-wrap:wrap;font-size:9px;gap:5px}.view>.toolbar h2{font-size:23px}.view>.toolbar{gap:15px}.view>.toolbar .topbar-actions{gap:7px}.view>.toolbar .topbar-actions button{font-size:10px}.view>.filter-bar .search-field{width:100%;min-height:36px}.account-options{gap:12px;font-size:11px}.password-panel{padding:15px}.password-panel .toolbar{gap:7px}.password-panel input{flex-basis:100%}.dialog-wide{width:calc(100vw - 20px)}.diff-grid>.diff-row{grid-template-columns:80px minmax(0,1fr) minmax(0,1fr);font-size:12px;line-height:1.85}.diff-grid>.diff-row>*{padding:10px 9px}.diff-grid .diff-label{font-size:11px}.diff-grid>.diff-head{font-size:10px}.detail-summary{font-size:11px}.login-card h2{font-size:24px}.login-card>p.muted{font-size:11px}.login-feature{font-size:9px;margin-top:9px;padding-top:14px}#person-dialog{width:calc(100vw - 14px);max-height:calc(100vh - 22px)}}

/* Readability pass: consistent YaHei, larger controls and strong foreground contrast. */
html{background:#edf2ef}
body .workspace{background:#edf2ef}
body .topbar{background:#fff;border-bottom-color:#bdccc3}
body .view{padding-top:30px}
body .hero-banner{border:1px solid #cedbd1;border-radius:14px;padding:24px 26px;margin-bottom:24px;background:linear-gradient(105deg,#f9fbfa 0%,#e4eee7 100%);box-shadow:0 3px 12px #203c2b05}
body .panel{background:#fff;border-color:#c6d3ca;box-shadow:0 4px 16px #16332107}
body .panel-header{background:#f6f8f7;border-bottom-color:#cbd7ce;padding-top:20px;padding-bottom:20px}
body .panel-header h2{font-weight:650!important}
body .panel .table-wrap{background:#fff}
body .data-table tbody tr:nth-child(even)>td{background:#f7f9f8}
body .data-table tbody tr:hover>td{background:#edf4ee}
body .stat-card{border-color:#c7d5cb;box-shadow:0 3px 10px #203c2b05}
body .stat-card:first-child{background:#e3eee4;border-color:#b5c9b5}
body .stat-card:first-child:hover{background:#dceadc}
body .stat-card.active{border-color:#487554;box-shadow:0 0 0 2px #48755424}
body .dialog,body dialog{background:#fff;border-color:#b9cbc0}
body .dialog-header,body .modal-header,body .modal-head{background:#f2f6f3;border-bottom-color:#c5d2c9}
body .dialog-footer,body .modal-footer,body .person-modal-footer{background:#f2f6f3;border-top-color:#c5d2c9}
body .dialog .dialog-body>p:not(.muted):not(.form-error){color:#24382d!important;font-size:16px!important}
body .form-grid .field{font-weight:500;gap:8px}
body .form-grid :is(input,textarea,select){font-weight:400;background:#fff}
body :is(button.primary,button.secondary,button.danger,.btn){min-height:40px}
body :is(button.primary,.btn.primary):hover:not(:disabled){background:#194b31!important;box-shadow:0 3px 10px #193f291c}
body :is(button.secondary,.btn.secondary):hover:not(:disabled){background:#e8f0e9!important;border-color:#7a9b84!important}
body :is(button.danger,.btn.danger):hover:not(:disabled){background:#ffe7df!important;border-color:#bf7b69!important}
body .worker-summary-grid{background:#fff}
@media(max-width:680px){body .hero-banner{padding:20px 18px;gap:18px}body .panel-header{align-items:flex-start;flex-wrap:wrap}}
body{font-family:'Microsoft YaHei','Microsoft YaHei UI',system-ui,sans-serif!important;font-size:16px!important;color:#16271f;--text:#1f2937;--ink:#16271f;--muted:#42534a;--line:#cdd8d3;--paper:#edf2ef}
body *{font-family:inherit}
body :is(button,input,select,textarea,td,th,label){font-size:16px!important;line-height:1.6}
body th{font-weight:600!important;color:#31463c!important;background:#f0f4f2!important}
body td{color:#1f2937!important}
body :is(input,select,textarea){color:#16271f!important;border-color:#bdcbc3!important}
body input::placeholder,body textarea::placeholder{color:#68776f!important}
body :is(.muted,.subtitle,.cell-meta,.panel-subtitle,.task-meta,.task-explainer,.dialog-kicker,.field-help,.event-description,.event-time,.audit-meta,.tree-meta,.tree-context,.tree-hint,.person-title-meta,.field small,.form-field small){font-size:14px!important;line-height:1.75!important;color:#42534a!important}
body :is(.view,.dialog,.tree-dialog,.person-dialog) p,body .panel-header>div>p{font-size:16px!important;color:#33463d!important;line-height:1.75!important}
body .data-table :is(.muted,small,.cell-meta){font-size:14px!important;color:#42534a!important}
body :is(.cell-title,.person-cell strong,.tree-person-text strong){font-size:16px!important;color:#16271f!important}
body :is(.badge,.count-pill,.stat-label,.stat-foot,.stat-footer,.task-stat span,.tree-person-text small,.tree-flags .badge){font-size:14px!important;font-weight:500!important}
body :is(.badge,.badge.success,.badge.green,.badge.online,.badge.create){color:#37532b!important;border-color:#c9d8c1!important}
body :is(.badge.warning,.badge.gold,.badge.update){color:#76551e!important;border-color:#dfcda4!important}
body :is(.badge.danger,.badge.red,.badge.delete){color:#873e2d!important;border-color:#e0b8a8!important}
body :is(.badge.muted,.badge.gray,.badge.offline){color:#42534a!important;border-color:#cbd5ce!important}
body .topbar .page-heading h1{font-size:24px!important;font-weight:650!important}
body :is(.hero-copy h2,.view>.toolbar h2){font-size:27px!important;color:#16271f!important}
body :is(.panel-header h2,.panel-title,.section-heading h3){font-size:20px!important;color:#16271f!important}
body .nav-button,body .nav-item{font-size:16px!important;font-weight:600;min-height:52px}
body :is(.nav-caption,.nav-label){font-size:13px!important;color:#a3b7a6!important}
body .sidebar .brand>div strong,body .brand-copy strong,body .brand-copy b{font-family:'Microsoft YaHei','Microsoft YaHei UI',system-ui,sans-serif!important;font-size:24px!important;font-weight:650;letter-spacing:.04em}
body .sidebar .brand>div small,body .brand-copy small{font-size:13px!important;color:#b3c7b6!important;letter-spacing:0}
body .sidebar-footer,body .sidebar-bottom{font-size:14px!important;color:#bed0bf!important}
body .sidebar-footer p{font-size:13px!important;color:#a5bfa9!important}
body .sidebar .brand-mark,body .book-cover,body .login-brand h1{font-family:'Microsoft YaHei','Microsoft YaHei UI',system-ui,sans-serif!important}
body .breadcrumb,body .topbar-actions,body #refresh-state,body #admin-name{font-size:14px!important;color:#42534a!important}
body .eyebrow{font-size:14px!important;color:#526b5c!important;letter-spacing:.07em}
body .stat-card{min-height:166px}
body .stat-value{font-size:38px!important;color:#17382b!important;font-weight:600}
body .stat-label,body .stat-foot,body .stat-footer{color:#42534a!important}
body :is(.detail-grid dt,.person-meta.detail-grid dt){font-size:16px!important;font-weight:500;color:#42534a!important}
body :is(.detail-grid dd,.person-meta.detail-grid dd){font-size:16px!important;color:#16271f!important;line-height:1.8!important}
body .detail-grid{grid-template-columns:110px minmax(0,1fr);gap:15px 18px}
body .person-meta.detail-grid{grid-template-columns:82px minmax(0,1fr);gap:13px}
body :is(.person-tabs .tab-btn,.tab-btn){font-size:16px!important;color:#42534a!important;min-height:52px}
body .person-tabs .tab-btn.active{color:#214f36!important;font-weight:650!important}
body :is(.prose-card,.person-excerpt,.value-block){font-size:16px!important;line-height:1.8!important;color:#16271f!important;background:#f3f6f5!important;border-color:#cdd8d3!important}
body :is(.person-panel .detail-section,.detail-section){border-color:#cdd8d3!important}
body .detail-section h3{font-size:18px!important;color:#253e31!important;font-weight:600}
body .person-summary-head h2{font-size:25px!important;color:#16271f!important}
body .person-modal-hero h2{font-size:28px!important;color:#16271f!important}
body :is(.person-summary-head small,.person-title-meta,.person-title-meta span){font-size:14px!important;color:#42534a!important}
body .tree-person{min-width:250px;min-height:67px;background:#fff;color:#16271f!important;border-color:#c5d2c5}
body .tree-person-text small{color:#42534a!important}
body .tree-person.selected{background:#e1edd9!important;border-color:#709967!important}
body .tree-person.selected .tree-person-text small{color:#365834!important}
body .tree-row{min-height:73px}
body .tree-node .tree-node>.tree-row:before{top:37px}
body .tree-person .person-avatar{font-size:16px!important;width:38px;height:40px}
body .tree-sidebar,body #person-detail{background:#fff;border-color:#cdd8d3}
body .person-summary .action-row{flex-wrap:wrap}
body .person-summary .action-row button{font-size:16px!important;padding:8px 10px}
body :is(.dialog-header h2,.modal-head h2,.modal-header h2){font-size:24px!important;color:#16271f!important}
body :is(.dialog-body .field,.person-panel .field,.person-form .field){color:#34483c!important;font-size:16px!important}
body .diff-grid .diff-row{font-size:16px!important;line-height:1.8!important}
body .diff-grid .diff-label{font-size:16px!important;color:#42534a!important;background:#f4f7f5}
body .diff-grid .diff-before{color:#684737!important;background:#fff5ef}
body .diff-grid .diff-after{color:#254632!important;background:#edf5e9}
body .diff-grid .diff-head{font-size:16px!important;color:#314b3b!important}
body .diff-grid>.diff-row>*{border-color:#cdd8d3!important}
body :is(.audit-content strong,.event-title,.event-title strong){font-size:16px!important;color:#16271f!important}
body .audit-row>div.audit-meta>span:last-child{font-size:14px!important;color:#476441!important}
body :is(.audit-meta,.audit-content>.audit-meta){font-size:14px!important;color:#42534a!important}
body .audit-icon,body .event-icon{width:38px;height:38px;font-size:20px!important}
body .audit-row{gap:16px;padding-top:21px;padding-bottom:21px}
body .book-card>h3{font-size:21px!important;color:#16271f!important}
body :is(.book-stats span,.book-card>p.muted,.book-metrics){font-size:14px!important;color:#42534a!important}
body .book-card-footer{flex-wrap:wrap}
body .export-menu,body .export-menu summary{font-size:16px!important}
body .panel :is(td,th){padding-top:15px;padding-bottom:15px;border-color:#dbe3dc!important}
body #grants :is(td,th){font-size:16px!important}
body #grants input[type=checkbox],body .account-options input[type=checkbox]{width:19px;height:19px}
body button:disabled{opacity:1!important;color:#66746d!important;background:#e8eeea!important;border-color:#cbd5ce!important;box-shadow:none!important}
body .entry-work button:disabled{opacity:.55!important}
body .btn.secondary,body button.secondary{color:#35513c!important;border-color:#bacbbf!important;background:#fff}
body button.primary,body .btn.primary{color:#fff!important;background:#285d43}
body .btn.danger,body button.danger{color:#8b392e!important;background:#fff1ed!important;border-color:#d9aca3!important}
body .text-button{font-size:16px!important;color:#2e6341!important}
body .workspace-footer{font-size:14px!important;color:#42534a!important}
body .workspace-footer span{color:#42534a!important}
body .pagination{font-size:15px!important;color:#42534a!important}
body .login-card>p.muted,body .login-card>small.muted{font-size:14px!important;color:#42534a!important}
body .login-brand>p{font-size:16px!important;color:#c2d2bb!important}
body .login-feature{font-size:14px!important;color:#b3c7a9!important}
body .login-card h2{font-size:30px!important;font-family:inherit!important}
body #login label{font-size:16px!important;color:#33493b!important}
body #login input{font-size:16px!important}
body .photo-card figcaption{font-size:14px!important;color:#42534a!important}
body .empty-state{font-size:15px!important;color:#42534a!important}
body .empty-state strong{font-size:17px!important;color:#344b3b!important}
@media(max-width:920px){body .shell,body .app-shell{grid-template-columns:220px minmax(0,1fr)}body .sidebar .brand>div small{font-size:12px!important}body .detail-grid{grid-template-columns:100px minmax(0,1fr)}}
@media(max-width:680px){body .shell,body .app-shell{display:block}body .nav-button{font-size:14px!important;min-height:46px}body .nav-button>span{display:none}body .topbar .page-heading h1{font-size:21px!important}body .hero-copy h2,body .view>.toolbar h2{font-size:24px!important}body .stat-card{min-height:156px}body .stat-card:after{display:none}body .stat-value{font-size:33px!important}body .stat-foot{font-size:14px!important}body .detail-grid{grid-template-columns:90px minmax(0,1fr)}body .person-panels .detail-grid{font-size:16px!important;grid-template-columns:90px minmax(0,1fr)}body .diff-grid>.diff-row{grid-template-columns:90px minmax(0,1fr) minmax(0,1fr)}body .audit-row>div.audit-meta{max-width:120px}body .nav-list{gap:4px}body .sidebar .brand>div{align-items:center}body .sidebar .brand>div small{font-size:12px!important}}

body button:disabled:not(.nav-button){opacity:1!important;color:#596960!important;background:#e5ece7!important;border-color:#bdcbc2!important;box-shadow:none!important}body .pyj-task-dialog .form-error:empty{display:none}

/* Customer entry progress overview. */
body #worker-progress{background:#fff}body #worker-progress .data-table{font-size:16px;min-width:1060px}body #worker-progress .data-table th{padding:18px 19px;font-size:16px!important;color:#213c2b!important;background:#e6eee8!important;white-space:nowrap}body #worker-progress .data-table td{padding:20px 19px;font-size:16px!important;line-height:1.75;color:#16271f!important;border-color:#d7e0da!important}body #worker-progress .data-table td strong{font-size:18px;color:#16271f;font-weight:600}body #worker-progress .data-table td .muted{font-size:14px!important;color:#42534a!important}body #worker-progress .data-table td p{font-size:16px!important;margin-top:4px}body .worker-progress-meter{display:flex;flex-direction:column;gap:7px;min-width:160px;max-width:240px}body .worker-progress-meter progress{display:block;appearance:none;-webkit-appearance:none;width:100%;height:9px;border:0;border-radius:5px;overflow:hidden;background:#d4dfd6;color:#38643f}body .worker-progress-meter progress::-webkit-progress-bar{background:#d4dfd6;border-radius:5px}body .worker-progress-meter progress::-webkit-progress-value{background:#38643f;border-radius:5px}body .worker-progress-meter progress::-moz-progress-bar{background:#38643f;border-radius:5px}body .worker-progress-text{display:flex;align-items:center;justify-content:space-between;gap:10px;font-size:16px!important;color:#263f2f!important;white-space:nowrap}body .worker-progress-text small{font-size:14px!important;color:#42534a!important}body .worker-context{padding:16px 24px;background:#eaf1ec;border-bottom:1px solid #becdc2;flex:none;color:#263d31;font-size:16px;line-height:1.7}body .worker-context>strong,body .worker-context h3{font-size:18px;color:#16271f;font-weight:600}body .worker-context>p{font-size:14px!important;color:#42534a!important;margin-top:5px}body .worker-context-fields{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:14px 24px;margin-top:10px;font-size:16px!important;line-height:1.75;color:#16271f}body .worker-context-fields>div,body .worker-context-fields>span{min-width:0;overflow-wrap:anywhere}body .worker-context-fields :is(small,dt,label){font-size:14px!important;font-weight:500;color:#42534a!important}body .worker-context-fields strong,body .worker-context-fields dd{font-size:16px!important;font-weight:500;color:#16271f!important;margin:0}body #worker-dialog{width:min(1050px,94vw)}body .worker-summary-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:20px 26px;padding:23px;background:#f2f6f3;border:1px solid #bfcec3;border-radius:10px;margin-bottom:25px;color:#16271f;font-size:16px;line-height:1.8}body .worker-summary-grid>div{min-width:0;overflow-wrap:anywhere}body .worker-summary-grid :is(small,dt,label){display:block;font-size:14px!important;color:#42534a!important;margin-bottom:5px}body .worker-summary-grid :is(strong,dd){font-size:17px!important;color:#16271f!important;font-weight:600;margin:0}body #worker-dialog .task-card{border:1px solid #cdd8d3;border-radius:9px;background:#fff;padding:18px 20px;margin-top:14px}body #worker-dialog .task-card-title h3{font-size:18px!important;color:#16271f!important}body #worker-dialog .task-context,body #worker-dialog .task-meta{font-size:16px!important;color:#42534a!important}body #worker-dialog h3{font-size:20px!important;color:#16271f!important}body #worker-dialog .worker-progress-meter{max-width:none;margin:15px 0 4px}body #worker-dialog .worker-progress-meter progress{height:10px}@media(max-width:1100px){body .worker-context-fields{grid-template-columns:repeat(2,minmax(0,1fr));gap:12px 22px}body .worker-summary-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}@media(max-width:680px){body .worker-context{padding:15px 18px}body .worker-context-fields{gap:12px 17px}body .worker-summary-grid{padding:16px;gap:16px 20px}body .worker-summary-grid :is(strong,dd){font-size:16px!important}body #worker-dialog .task-card{padding:16px}body #worker-progress .data-table th,body #worker-progress .data-table td{padding:15px 17px}body .worker-progress-meter{min-width:155px}}

/* Fit every customer-progress column in desktop workspaces. */
body #worker-progress{min-width:0;max-width:100%;overflow:hidden}body #worker-progress .table-wrap{max-width:100%;overflow-x:auto}body #worker-progress table.data-table{min-width:0;width:100%;table-layout:fixed}body #worker-progress .data-table th:nth-child(1){width:24%}body #worker-progress .data-table th:nth-child(2){width:19%}body #worker-progress .data-table th:nth-child(3){width:22%}body #worker-progress .data-table th:nth-child(4){width:19%}body #worker-progress .data-table th:nth-child(5){width:16%}body #worker-progress .data-table :is(td,th){white-space:normal;overflow-wrap:anywhere;word-break:normal;padding-left:13px;padding-right:13px}body #worker-progress .data-table td>*{min-width:0;max-width:100%}body #worker-progress .data-table .action-row{flex-wrap:wrap;gap:7px;justify-content:flex-start}body #worker-progress .data-table button{max-width:100%;font-size:16px!important;white-space:normal;overflow-wrap:anywhere;line-height:1.5;padding:7px 10px}body #worker-progress .worker-progress-meter{min-width:0;width:100%;max-width:100%}body #worker-progress .worker-progress-text{white-space:normal;flex-wrap:wrap;gap:3px 8px}body #worker-progress .person-cell{min-width:0;flex-wrap:wrap}body #worker-progress .badge{max-width:100%;white-space:normal}body .workspace{min-width:0;max-width:100%}body .view{min-width:0;max-width:100%}@media(max-width:899px){body #worker-progress table.data-table{min-width:860px}body #worker-progress .table-wrap{overflow-x:auto;overscroll-behavior-x:contain}}

/* Compact overview keeps the first customer row visible at desktop height. */
body #activity.view{padding-top:24px}
body #activity>.hero-banner{min-height:110px;padding:16px 24px;margin-bottom:18px;gap:18px}
body #activity .hero-copy>.eyebrow{display:none}
body #activity .hero-copy>p:not(.eyebrow){margin-top:6px}
body #activity>.stats-grid{gap:16px;margin-bottom:18px}
body #activity .stat-card{min-height:128px;padding:14px 19px}
body #activity .stat-value{margin:4px 0 3px;line-height:1.1}
body #activity .stat-foot,body #activity .stat-footer{padding-top:0}
body #activity .stat-card:after{top:15px;right:17px}
@media(max-width:680px){body #activity.view{padding-top:20px}body #activity>.hero-banner{padding:17px 18px;min-height:0;gap:13px;align-items:flex-start;margin-bottom:16px}body #activity>.stats-grid{gap:10px;margin-bottom:17px}body #activity .stat-card{padding:13px 15px;min-height:125px}}
