:root{--font-sans: "PingFang SC", "Microsoft YaHei", "Noto Sans CJK SC", "Source Han Sans SC", Inter, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;font-family:var(--font-sans);color:#25211a;background:#fbfaf7;font-synthesis:none;text-rendering:optimizeLegibility;--ink: #25211a;--muted: #756b5a;--line: #eadfca;--panel: #ffffff;--primary: #b8872f;--primary-dark: #765015;--accent: #d5b36a;--warn: #9f6b12;--danger: #b42318;--soft: #fff7e7;--surface: #fbfaf7;--sidebar: #fffaf0;--sidebar-2: #fff1cf;--shadow-sm: 0 8px 24px rgba(81, 58, 21, .08);--shadow-md: 0 18px 48px rgba(81, 58, 21, .14)}*{box-sizing:border-box}body{margin:0;background:var(--surface);overflow:hidden}html,body,#root{width:100%;height:100%}button,input,select,textarea{font:inherit}button{cursor:pointer}.login-page{min-height:100vh;display:grid;place-items:center;padding:24px;background:linear-gradient(90deg,rgba(184,135,47,.1) 0 1px,transparent 1px 100%),linear-gradient(180deg,rgba(184,135,47,.08) 0 1px,transparent 1px 100%),#fbfaf7;background-size:34px 34px,34px 34px,100% 100%;color:var(--ink)}.login-brand{display:flex;align-items:center;justify-content:center;gap:14px}.login-mark{width:56px;height:56px;border:1px solid #e0c078;background:#fff8e7;display:grid;place-items:center;border-radius:8px;box-shadow:inset 0 1px #fffc,var(--shadow-sm)}.login-brand strong,.login-brand span{display:block}.login-brand strong{font-size:28px;letter-spacing:0}.login-brand span{color:var(--muted)}.login-panel{width:min(460px,100%);background:transparent;color:var(--ink);display:grid;gap:18px}.login-panel form{width:100%;background:#fff;border:1px solid var(--line);border-radius:8px;padding:28px;display:grid;gap:14px;box-shadow:var(--shadow-md)}.login-title{display:grid;gap:6px;margin-bottom:2px}.login-title h1{margin:0;font-size:26px;letter-spacing:0}.login-error{border:1px solid rgba(180,35,24,.24);border-radius:6px;background:#fff2f0;color:var(--danger);padding:10px 12px;line-height:1.5}.app{min-height:100vh;display:grid;grid-template-columns:252px minmax(0,1fr);background:var(--surface)}.sidebar{background:var(--sidebar);color:var(--ink);padding:18px 14px;display:flex;flex-direction:column;gap:18px;border-right:1px solid #ead9b6;box-shadow:18px 0 40px #513a1514}.brand{display:flex;align-items:center;gap:10px;padding:10px 10px 18px;border-bottom:1px solid #ead9b6}.brand strong{font-size:18px;letter-spacing:0}.sidebar nav{display:grid;gap:4px}.sidebar button{border:0;background:transparent;color:#5f5441;display:flex;gap:10px;align-items:center;padding:12px 13px;border-radius:6px;text-align:left;transition:background .16s ease,color .16s ease,transform .16s ease}.sidebar button.active,.sidebar button:hover{background:var(--sidebar-2);color:#5f3f09;transform:translate(2px)}main{min-width:0;padding:24px 28px 48px}.topbar{display:flex;align-items:center;justify-content:space-between;margin-bottom:22px;gap:12px;background:#ffffffdb;border:1px solid rgba(234,223,202,.9);border-radius:8px;padding:14px 16px;box-shadow:var(--shadow-sm);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px)}.topbar-actions{display:flex;flex-wrap:wrap;gap:8px;justify-content:flex-end}.topbar h1{margin:0;font-size:25px;letter-spacing:0}.topbar span,small,.field span,.metric span,.detail-grid span{color:var(--muted)}.view{display:grid;gap:18px}.metrics{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:14px}.metric,.panel,.modal,.drawer{background:var(--panel);border:1px solid var(--line);border-radius:8px;box-shadow:var(--shadow-sm)}.metric{padding:18px;display:grid;gap:6px;position:relative;overflow:hidden}.metric:before{content:"";position:absolute;inset:0 auto 0 0;width:4px;background:var(--primary)}.metric strong{font-size:30px;letter-spacing:0}.two-col{display:grid;grid-template-columns:minmax(0,1.2fr) minmax(320px,.8fr);gap:18px}.three-col{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px}.panel{padding:18px;min-width:0}.panel-head{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:14px}.panel h2,.modal h2,.drawer h2{margin:0;font-size:18px;letter-spacing:0}.toolbar{display:flex;align-items:flex-start;gap:12px}.toolbar .filter-shell{flex:1}.toolbar-actions{display:flex;flex-wrap:wrap;gap:8px;justify-content:flex-end}.btn{border:1px solid transparent;display:inline-flex;align-items:center;justify-content:center;gap:7px;height:40px;padding:0 14px;border-radius:6px;white-space:nowrap;transition:background .16s ease,border-color .16s ease,transform .16s ease,box-shadow .16s ease}.btn-primary{background:var(--primary);color:#21180a;box-shadow:0 8px 18px #b8872f3d}.btn-primary:hover{background:var(--primary-dark);transform:translateY(-1px)}.btn-secondary{background:#fff;color:var(--ink);border-color:var(--line)}.btn-secondary:hover{border-color:#d9bd7b;box-shadow:var(--shadow-sm)}.btn-ghost{background:transparent;color:var(--ink);border-color:transparent}.btn:disabled{opacity:.55;cursor:not-allowed}.searchbar{height:46px;background:#fff;border:1px solid var(--line);border-radius:8px;display:flex;align-items:center;gap:9px;padding:0 12px;box-shadow:var(--shadow-sm)}.searchbar input{border:0;outline:0;flex:1;min-width:120px}.link-btn{border:0;background:transparent;color:var(--primary);display:inline-flex;align-items:center;gap:5px;padding:4px 6px}.filter-grid,.form-grid,.settings-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.settings-grid.wide-settings{grid-template-columns:minmax(0,1fr);margin-top:12px}.wide-settings textarea{font-family:SFMono-Regular,Consolas,Liberation Mono,monospace;line-height:1.5}.crm-enable{min-height:40px;align-self:end}.filter-grid{margin-top:10px;padding:14px;background:#fff;border:1px solid var(--line);border-radius:8px;box-shadow:var(--shadow-sm)}.field{display:grid;gap:6px}.field input,.field select,.field textarea{width:100%;border:1px solid var(--line);border-radius:6px;background:#fff;min-width:0;transition:border-color .16s ease,box-shadow .16s ease}.field input,.field select{height:40px;padding:0 11px}.field textarea{min-height:110px;resize:vertical;padding:10px}.inline-field-action{display:grid;grid-template-columns:minmax(0,1fr) 40px;gap:8px;align-items:center}.inline-field-action .icon-only{width:40px;height:40px}.borrow-output-options{display:flex;flex-wrap:wrap;gap:8px 12px;align-self:end;min-height:40px;align-items:center}.dev-sync-view .metrics.four{grid-template-columns:repeat(4,minmax(0,1fr))}.dev-sync-toolbar-panel .panel-head{align-items:flex-start}.dev-sync-toolbar-panel .panel-head small{display:block;margin-top:4px}.dev-sync-filters{margin-top:0}.dev-sync-reset{margin-top:10px}.dev-sync-layout{display:grid;grid-template-columns:minmax(0,1.35fr) minmax(360px,.65fr);gap:18px;align-items:start}.dev-sync-list-panel,.dev-sync-detail-panel{min-width:0}.dev-sync-table-wrap{max-height:calc(100vh - 430px);min-height:430px}.dev-sync-table{min-width:980px}.dev-sync-table td{vertical-align:top}.dev-sync-feedback-preview{display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;line-height:1.5}.dev-sync-badges{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:14px}.dev-sync-detail-copy{display:grid;gap:8px;margin-bottom:16px}.dev-sync-detail-copy h3,.dev-sync-history h3{margin:10px 0 0;font-size:14px;color:var(--muted);letter-spacing:0}.dev-sync-detail-copy p{margin:0;white-space:pre-wrap;line-height:1.65}.dev-sync-feedback-form{display:grid;gap:12px;padding-top:14px;border-top:1px solid var(--line)}.dev-sync-history{display:grid;gap:10px;margin-top:16px;padding-top:14px;border-top:1px solid var(--line)}.dev-sync-history .log-row{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:8px 12px;align-items:start}.dev-sync-history .log-row p{grid-column:1 / -1;margin:0;white-space:pre-wrap;line-height:1.55}.entity-view{gap:14px}.entity-toolbar-panel .panel-head{align-items:flex-start}.entity-filters{grid-template-columns:minmax(260px,1fr) minmax(180px,240px)}.entity-layout{display:grid;grid-template-columns:minmax(420px,.95fr) minmax(440px,1.05fr);gap:14px;align-items:start}.entity-list-panel,.entity-detail-panel{min-width:0}.entity-table{min-width:620px}.entity-table td{vertical-align:top}.entity-summary-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;margin:12px 0}.entity-summary-grid div{border:1px solid var(--line);border-radius:8px;padding:10px;background:var(--surface-soft)}.entity-summary-grid span,.entity-edit-grid .field>span{color:var(--muted);font-size:12px}.entity-summary-grid strong{display:block;margin-top:4px}.entity-edit-grid{margin-top:12px}.entity-section{margin-top:16px;border-top:1px solid var(--line);padding-top:14px}.entity-section h3{margin:0 0 10px;font-size:15px}.relation-row,.contract-link-row{display:flex;align-items:center;gap:10px;width:100%;border:1px solid var(--line);border-radius:8px;background:var(--surface);padding:10px;text-align:left}.relation-row>div,.contract-link-row span{flex:1;min-width:0}.relation-row small,.contract-link-row small{display:block;color:var(--muted);margin-top:2px}.contract-link-row{cursor:pointer}.contract-link-row:hover{border-color:var(--primary)}.entity-relation-form{display:grid;grid-template-columns:minmax(180px,1fr) minmax(140px,180px) minmax(180px,1fr) auto;gap:10px;align-items:end;margin-top:12px}.contract-relations-panel{display:grid;gap:14px}.field input:focus,.field select:focus,.field textarea:focus,.searchbar:focus-within,.ask-form input:focus{outline:none;border-color:#d3ad55;box-shadow:0 0 0 3px #b8872f24}.table-wrap{overflow:auto;background:#fff;border:1px solid var(--line);border-radius:8px;box-shadow:var(--shadow-sm)}table{width:100%;border-collapse:collapse;min-width:880px}th,td{text-align:left;padding:13px 14px;border-bottom:1px solid var(--line);vertical-align:middle}th{color:var(--muted);font-size:13px;background:#fff7e6;font-weight:650}td strong,td small{display:block}tbody tr:hover{background:#fffaf0}.clickable-row{cursor:pointer}.badge{display:inline-flex;align-items:center;justify-content:center;min-height:24px;padding:2px 8px;border-radius:999px;font-size:12px;color:#334155;background:var(--soft);white-space:nowrap}.badge-ok{color:#5f3f09;background:#fff0c4}.badge-warn{color:#7a4c05;background:#fff0c2}.badge-danger{color:#842029;background:#f8d7da}.mini-list,.stack{display:grid;gap:8px}.mini-row,.reminder-row,.file-row,.log-row,.group-box,.notice{border:1px solid var(--line);background:#fff;border-radius:8px;padding:12px 13px;transition:border-color .16s ease,box-shadow .16s ease,transform .16s ease}.mini-row:hover,.group-box:hover{border-color:#d7b96d;box-shadow:var(--shadow-sm);transform:translateY(-1px)}.mini-row{width:100%;display:grid;grid-template-columns:minmax(0,1fr) minmax(150px,.4fr) auto;gap:10px;text-align:left;align-items:center}.reminder-row{display:grid;grid-template-columns:minmax(0,1fr) auto auto;gap:10px;align-items:center}.reminder-row strong,.reminder-row span{display:block}.modal-backdrop{position:fixed;inset:0;background:#30241152;display:grid;place-items:center;padding:24px;z-index:90}.modal{width:min(760px,100%);max-height:calc(100vh - 48px);overflow:auto;padding:16px;box-shadow:var(--shadow-md)}.modal:has(.import-review-modal){width:min(1120px,100%)}.modal-head,.drawer-head{display:flex;align-items:flex-start;justify-content:space-between;gap:12px;margin-bottom:14px}.modal-actions{grid-column:1 / -1;display:flex;justify-content:flex-end;gap:8px}.custom-fields-editor{grid-column:1 / -1;display:grid;gap:12px;border:1px solid var(--line);border-radius:8px;padding:14px;background:#fffdf8}.custom-fields-head{display:flex;align-items:center;justify-content:space-between;gap:10px}.custom-fields-head h3{margin:0;font-size:15px}.custom-fields-list{display:grid;gap:8px}.custom-field-row{display:grid;grid-template-columns:minmax(130px,.36fr) minmax(0,1fr) 36px;gap:10px;align-items:stretch;border:1px solid #ead9b4;border-radius:8px;padding:8px;background:#fff}.custom-field-row label{min-width:0;display:grid;align-content:start;gap:4px}.custom-field-row label span{color:#9a7b43;font-size:12px;font-weight:700}.custom-field-row input,.custom-field-row textarea{border:0;border-radius:6px;background:#fffaf0;box-shadow:inset 0 0 0 1px transparent}.custom-field-row input:focus,.custom-field-row textarea:focus{background:#fff;box-shadow:inset 0 0 0 1px #e2bd70}.custom-field-row textarea{min-height:54px;resize:vertical}.custom-field-delete{align-self:center;border-color:transparent;background:transparent;color:var(--muted)}.custom-field-delete:hover{border-color:#f0d8a0;background:#fff4d9;color:#8a5a06}.custom-fields-empty{border:1px dashed #e3d0a6;border-radius:8px;padding:12px;color:var(--muted);font-size:13px;text-align:center;background:#fff}.custom-fields-read{margin-top:12px}.custom-fields-read-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.custom-fields-read-grid div{border:1px solid var(--line);border-radius:8px;padding:10px 12px;display:grid;gap:5px;background:#fff}.icon-only{width:36px;height:36px;display:inline-flex;align-items:center;justify-content:center;border:1px solid var(--line);background:#fff;border-radius:6px}.drawer{position:fixed;top:0;right:0;width:min(560px,100vw);height:100vh;z-index:70;padding:18px;overflow:auto;box-shadow:-18px 0 60px #513a1524}.tabs{display:flex;gap:6px;min-height:44px;align-items:center;border-bottom:1px solid var(--line);margin-bottom:14px;overflow-x:auto}.tabs button{border:0;background:transparent;padding:10px 8px;color:var(--muted);border-bottom:2px solid transparent;white-space:nowrap}.tabs button.active{color:var(--primary);border-bottom-color:var(--primary)}.tabs-top{border-bottom:0;margin-bottom:8px}.tabs-top button{background:#fff;border:1px solid var(--line);border-radius:6px}.tabs-top button.active{border-color:var(--primary);border-bottom-color:var(--primary);background:#fff4d6}.detail-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.detail-strip{display:flex;flex-wrap:wrap;align-items:center;gap:8px;margin-top:12px}.detail-strip span{color:var(--muted)}.action-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(170px,1fr));gap:12px}.action-card{min-height:86px;border:1px solid var(--line);background:#fff;border-radius:8px;display:flex;align-items:center;justify-content:center;gap:8px;color:var(--ink);box-shadow:var(--shadow-sm);transition:transform .16s ease,border-color .16s ease,color .16s ease,box-shadow .16s ease}.action-card:hover{border-color:var(--primary);color:var(--primary);transform:translateY(-2px);box-shadow:var(--shadow-md)}.result-box{border:1px solid var(--line);background:#fff;border-radius:8px;padding:14px;display:grid;gap:8px;box-shadow:var(--shadow-sm)}.result-box pre{margin:0;white-space:pre-wrap;word-break:break-word;background:#2a2114;color:#fff8e8;padding:12px;border-radius:6px;max-height:360px;overflow:auto}.detail-grid div{border:1px solid var(--line);border-radius:8px;padding:12px;display:grid;gap:5px;background:#fffdf8}.subject-tags{border:1px solid var(--line);border-radius:8px;padding:12px;background:#fffdf8;display:grid;gap:8px}.subject-tags>span{font-size:12px;color:var(--muted)}.subject-tags>div{display:flex;flex-wrap:wrap;gap:8px}.handling-path-tags .badge{max-width:100%;white-space:normal;justify-content:flex-start;overflow-wrap:anywhere}.approval-contract-trace{display:grid;gap:10px}.approval-handling-path-strip{border:1px solid var(--line);border-radius:8px;background:#fffdf8;padding:10px 12px;display:grid;gap:4px}.approval-handling-path-strip span{color:var(--muted);font-size:12px;font-weight:700}.approval-handling-path-strip strong{min-width:0;overflow-wrap:anywhere}.text-preview{white-space:pre-wrap;word-break:break-word;background:#2a2114;color:#fff8e8;padding:14px;border-radius:8px;max-height:65vh;overflow:auto}.file-row,.log-row,.notice{display:flex;align-items:center;gap:10px}.notice.strip{align-items:flex-start;border:1px solid var(--line);border-radius:8px;padding:12px 14px;background:#fffdf8;color:var(--muted);line-height:1.6}.file-row span,.notice a{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis}.inline-upload,.borrow-form,.group-form,.ask-form,.knowledge-form{display:flex;flex-wrap:wrap;gap:10px;align-items:end}.borrow-form .field,.knowledge-form .field{flex:1 1 180px}.export-layout{display:grid;gap:14px}.approval-filter-bar{display:grid;grid-template-columns:repeat(2,minmax(180px,240px)) auto;align-items:end;gap:12px;margin-bottom:14px}.approval-exception-panel{border-color:#efc6c1}.approval-exception-table table{min-width:900px}.approval-reason-cell{max-width:520px;overflow-wrap:anywhere;white-space:normal}.approval-trail-table table{min-width:1160px}.approval-trail-table td{vertical-align:middle}.approval-trail-table small{display:block;margin-top:3px}.approval-path-cell{max-width:240px;white-space:normal;overflow-wrap:anywhere}.modal.approval-path-modal{width:min(980px,calc(100vw - 28px))}.approval-path-body{display:grid;gap:14px}.approval-path-meta{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px}.approval-path-meta div{min-width:0;border:1px solid var(--line);border-radius:7px;background:#fffdf8;padding:10px 12px;display:grid;gap:4px}.approval-path-meta span,.approval-path-meta small{color:var(--muted)}.approval-path-meta strong,.approval-path-meta small{min-width:0;overflow-wrap:anywhere}.approval-flow-summary,.approval-flow-tags{display:flex;align-items:flex-start;justify-content:space-between;gap:10px}.approval-flow-summary>div:first-child{min-width:0;display:grid;gap:3px}.approval-flow-summary strong,.approval-step-body strong{overflow-wrap:anywhere}.approval-flow-summary small,.approval-step-body small{color:var(--muted);overflow-wrap:anywhere}.approval-flow-tags{justify-content:flex-end;flex-wrap:wrap}.approval-linear-flow{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:0}.approval-flow-step{min-width:0;display:grid;grid-template-columns:34px minmax(0,1fr) 22px;gap:9px;align-items:start}.approval-flow-step:last-child{grid-template-columns:34px minmax(0,1fr)}.approval-step-marker{width:34px;height:34px;border-radius:50%;display:grid;place-items:center;color:#fff;background:var(--primary);box-shadow:0 0 0 4px #fff4d6}.approval-step-warn .approval-step-marker{background:var(--warn)}.approval-step-danger .approval-step-marker{background:var(--danger);box-shadow:0 0 0 4px #ffe7e3}.approval-step-body{min-width:0;display:grid;gap:5px;align-content:start}.approval-step-body>span{color:var(--muted);font-size:12px}.approval-step-body .badge{width:fit-content;max-width:100%;white-space:normal}.approval-step-line{height:2px;margin-top:16px;background:linear-gradient(90deg,var(--line),rgba(184,135,47,.38))}.approval-flow-note{display:flex;gap:7px;align-items:flex-start;color:var(--danger);background:#fff2f0;border:1px solid rgba(180,35,24,.18);border-radius:7px;padding:9px 10px;line-height:1.55}.approval-flow-note span{min-width:0;overflow-wrap:anywhere}.import-workbench{gap:14px}.import-status-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));border:1px solid var(--line);border-radius:8px;overflow:hidden;background:#fff}.import-status-grid div{min-width:0;padding:14px 16px;border-right:1px solid var(--line)}.import-status-grid div:last-child{border-right:0}.import-status-grid span,.import-status-grid strong{display:block}.import-status-grid span{color:var(--muted);font-size:13px}.import-status-grid strong{margin-top:6px;font-size:18px;overflow-wrap:anywhere}.import-review-table table{min-width:1080px}.import-review-modal{display:grid;gap:14px}.import-review-layout{display:grid;grid-template-columns:minmax(0,1.1fr) minmax(320px,.9fr);gap:14px;align-items:start}.import-review-section{min-width:0;display:grid;gap:10px}.import-review-section h3{margin:0;color:var(--text);font-size:15px}.delegated-payment-review{display:grid;gap:10px;border:1px solid var(--line);border-radius:8px;padding:12px;background:#fffdf8}.review-field{display:grid;gap:8px}.review-field>span{color:var(--muted);font-size:13px}.segmented-control{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:6px}.segmented-control button{min-width:0;border:1px solid var(--line);border-radius:8px;background:#fff;padding:9px 10px;color:var(--ink);font-weight:700}.segmented-control button.active{border-color:#f28a16;background:#fff0c2;color:#7a4c05}.review-hint{display:flex;align-items:center;gap:8px;min-width:0}.review-hint small{min-width:0;color:var(--muted);overflow-wrap:anywhere}.delegated-payment-review textarea{min-height:76px;resize:vertical}.compact-raw-preview{max-height:260px;overflow:auto}.import-final-check{align-items:flex-start;white-space:normal}.import-sync-table table{min-width:780px}.import-sync-message{max-width:520px;overflow-wrap:anywhere}.ledger-actions,.row-actions{display:flex;align-items:center;flex-wrap:wrap;gap:10px}.ledger-actions{justify-content:space-between;padding-top:4px}.ledger-template-row{display:flex;align-items:end;gap:10px;margin-bottom:10px}.ledger-template-row .field{min-width:190px}.knowledge-form .field:has(textarea){flex-basis:360px}.admin-permission-layout{display:grid;grid-template-columns:minmax(260px,.8fr) minmax(520px,1.6fr);gap:16px}.user-admin-panel{grid-column:1 / -1}.admin-ai-layout{display:grid;grid-template-columns:minmax(520px,1.2fr) minmax(360px,.8fr);gap:16px}.global-log-summary{grid-template-columns:repeat(4,minmax(160px,1fr))}.global-log-panel{display:grid;gap:14px}.global-log-toolbar{display:grid;grid-template-columns:minmax(260px,1fr) minmax(150px,190px) minmax(150px,190px) auto;align-items:end;gap:12px}.global-log-search{min-height:42px;border:1px solid var(--line);border-radius:8px;background:#fff;display:flex;align-items:center;gap:8px;padding:0 11px}.global-log-search:focus-within{border-color:#d3ad55;box-shadow:0 0 0 3px #b8872f24}.global-log-search svg{color:var(--muted);flex:0 0 auto}.global-log-search input{width:100%;min-width:0;border:0;outline:0;background:transparent}.global-log-actions{display:flex;align-items:center;justify-content:flex-end;gap:8px}.global-log-table table{min-width:1120px}.log-time-cell{white-space:nowrap}.log-event-cell,.log-target-cell,.log-message-cell{max-width:300px;overflow-wrap:anywhere}.danger-row{background:#fff5f5}.danger-row:hover{background:#ffecec}.ai-base-form{display:grid;gap:14px}.ai-base-table table{min-width:960px}.approval-template-table{margin-bottom:16px}.approval-template-table table{min-width:1160px}.approval-template-table input,.approval-template-table select{min-width:150px}.approval-template-table input[type=checkbox]{min-width:auto}.danger-link{color:var(--danger)}.url-cell{max-width:280px;overflow-wrap:anywhere;color:var(--muted)}.ai-default-check{width:fit-content}.compact-table table{table-layout:auto}.compact-table th,.compact-table td{padding:10px 12px;vertical-align:top}.selected-row{background:#fff8eb}.role-list-panel tbody tr{cursor:pointer}.role-editor{display:grid;gap:14px}.settings-grid.dense{grid-template-columns:repeat(2,minmax(180px,1fr))}.permission-editor{display:grid;gap:12px;border:1px solid var(--line);border-radius:8px;padding:12px;background:#fffdf8}.permission-section{display:grid;grid-template-columns:88px minmax(0,1fr);align-items:start;gap:12px}.permission-section>strong{color:var(--muted);font-size:13px;line-height:28px}.dense-permission-grid,.dense-role-checks{display:flex;flex-wrap:wrap;gap:6px 12px}.check-row.strong-check{font-weight:700}.user-create-form{display:grid;grid-template-columns:minmax(140px,1fr) minmax(140px,1fr) minmax(140px,1fr) auto;gap:10px;align-items:end;margin-bottom:14px}.ask-form{margin-bottom:14px}.ask-form input{flex:1;min-width:220px;height:40px;border:1px solid var(--line);border-radius:6px;padding:0 11px}.group-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:12px;margin-bottom:14px}.group-box{display:grid;gap:7px;background:#fffdf8}.chip-row{display:flex;gap:5px;flex-wrap:wrap}.permission-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(160px,1fr));gap:8px;width:100%}.user-permissions{display:grid;gap:10px;margin-top:18px}.user-permissions h3{margin:0;font-size:15px}.user-row{display:grid;grid-template-columns:minmax(160px,.4fr) minmax(0,1fr);gap:12px;align-items:center;border:1px solid var(--line);background:#fffdf8;border-radius:8px;padding:10px 12px}.user-row strong,.user-row span{display:block}.check-row{display:flex;align-items:center;gap:8px;background:#fff;border:1px solid var(--line);border-radius:6px;padding:8px 10px}.check-row.compact{padding:6px 8px}.protocol{display:grid;gap:10px}.protocol code{display:block;padding:12px;border-radius:6px;background:#2a2114;color:#fff8e8;overflow-x:auto}.task-list{display:grid;gap:12px}.task-card{display:flex;align-items:flex-start;justify-content:space-between;gap:16px;border:1px solid var(--line);border-radius:8px;padding:14px 16px;background:#fffdf8}.task-card p{margin:6px 0 0;color:var(--muted);line-height:1.6}.empty,.loading,.error{border:1px dashed var(--line);border-radius:8px;padding:24px;text-align:center;color:var(--muted);background:#ffffffb8}.loading{display:flex;align-items:center;justify-content:center;gap:8px}.error{color:var(--danger);border-color:#f1b7b7}.rotate{transform:rotate(180deg)}@media(max-width:980px){.app{grid-template-columns:1fr}.sidebar{position:sticky;top:0;z-index:10}.sidebar nav{grid-template-columns:repeat(3,minmax(0,1fr))}.metrics,.two-col,.three-col,.filter-grid,.form-grid,.settings-grid,.detail-grid,.user-row{grid-template-columns:1fr}.toolbar{display:grid}.toolbar-actions{justify-content:flex-start}}@media(max-width:640px){.login-page{padding:24px 16px}main{padding:16px}.sidebar nav{grid-template-columns:repeat(2,minmax(0,1fr))}.mini-row,.reminder-row{grid-template-columns:1fr}}:root{--ink: #20242a;--muted: #746b5f;--line: #eadfce;--panel: #ffffff;--primary: #bd852f;--primary-dark: #8d611e;--accent: #d8b46a;--warn: #d97706;--danger: #dc3f34;--ok: #3f8f61;--soft: #fff8eb;--surface: #f8f6f1;--sidebar: #fffdf9;--sidebar-2: #fbecd1;--shadow-sm: 0 8px 24px rgba(91, 68, 32, .08);--shadow-md: 0 22px 60px rgba(91, 68, 32, .16)}body{background:radial-gradient(circle at 68% 0%,rgba(216,180,106,.12),transparent 34%),linear-gradient(180deg,#fffdfa 0%,var(--surface) 100%)}.login-page{min-height:100vh;display:grid;grid-template-rows:1fr;place-items:initial;padding:0;background:radial-gradient(circle at 50% 45%,rgba(216,180,106,.08),transparent 34%),linear-gradient(180deg,#fffefd,#faf7ef),#fffdf9;position:relative;overflow:hidden}.login-page:before,.login-page:after{content:none;display:none}.login-top{display:none;height:80px;border-bottom:1px solid rgba(234,223,206,.9);align-items:center;padding:0 64px;background:#ffffffb8;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);z-index:1}.brand-lockup,.brand{display:flex;align-items:center;gap:12px}.brand-lockup svg,.brand svg,.hero-mark svg{color:var(--primary);fill:#bd852f1f}.brand-lockup strong{font-size:24px}.login-hero{width:min(1220px,calc(100% - 72px));margin:0 auto;display:grid;grid-template-columns:minmax(360px,1fr) minmax(380px,440px);align-items:center;gap:80px;z-index:1}.login-copy{display:flex;align-items:center;justify-content:center;gap:28px;min-height:420px}.hero-mark{width:88px;height:88px;border-radius:22px;display:grid;place-items:center;background:linear-gradient(180deg,#d6ad61,#a87526);box-shadow:0 18px 40px #7e581c38}.hero-mark svg{color:#fff7e8;fill:transparent}.login-copy h1{margin:0;font-size:52px;line-height:1}.login-copy p,.login-title p{color:var(--muted);margin:14px 0 0;font-size:18px}.login-card{width:100%;background:#fffffff0;border:1px solid rgba(234,223,206,.95);border-radius:8px;padding:48px;display:grid;gap:18px;box-shadow:var(--shadow-md)}.login-title h2{margin:0;font-size:32px}.input-with-icon{height:48px;border:1px solid var(--line);border-radius:6px;display:flex;align-items:center;gap:10px;padding:0 13px;background:#fff}.input-with-icon:focus-within{border-color:var(--accent);box-shadow:0 0 0 3px #bd852f24}.input-with-icon input{border:0;outline:0;height:auto;padding:0;flex:1}.inline-icon{border:0;background:transparent;color:var(--muted);padding:4px}.btn.wide{width:100%;height:50px;font-weight:700}.local-login-form{display:grid;gap:12px}.login-alt{display:grid;gap:14px;text-align:center;color:var(--muted);margin-top:14px}.login-alt span{display:grid;grid-template-columns:1fr auto 1fr;gap:12px;align-items:center}.login-alt span:before,.login-alt span:after{content:"";height:1px;background:var(--line)}.login-alt button,.login-options button{border:0;background:transparent;color:var(--primary);display:inline-flex;justify-content:center;gap:8px}.login-options{display:flex;justify-content:space-between;align-items:center;color:var(--muted)}.plain-check{display:inline-flex;gap:8px;align-items:center}.login-footer{text-align:center;color:#a59b8d;padding:24px;z-index:1}.app{grid-template-columns:260px minmax(0,1fr);background:var(--surface);height:100vh;height:100dvh;min-height:0;overflow:hidden}.app.nav-collapsed{grid-template-columns:64px minmax(0,1fr)}.sidebar{background:var(--sidebar);padding:18px 14px;border-right:1px solid var(--line);box-shadow:14px 0 38px #5b442012;height:100%;min-height:0;overflow:hidden}.app.nav-collapsed .sidebar{padding:18px 8px}.brand{padding:4px 10px 24px;border-bottom:0}.app.nav-collapsed .brand{justify-content:center;gap:7px;padding:4px 0 18px}.brand strong{font-size:24px}.app.nav-collapsed .brand strong{display:none}.app.nav-collapsed .brand>svg{display:none}.sidebar-menu{margin-left:auto}.app.nav-collapsed .sidebar-menu{margin-left:0}.sidebar nav{gap:8px}.sidebar button{min-height:48px;border-radius:6px;color:#4e493f;font-weight:550}.sidebar button svg:last-child{margin-left:auto}.sidebar button.active{color:#7b4f12;background:linear-gradient(90deg,#fbecd1,#fff7e8)}main{padding:0 0 36px;min-height:0;display:grid;grid-template-rows:auto minmax(0,1fr);overflow:hidden}.topbar{margin:0;min-height:80px;border-radius:0;border-width:0 0 1px;box-shadow:0 8px 28px #5b44200f;display:grid;grid-template-columns:auto max-content minmax(320px,520px) minmax(0,1fr);justify-content:stretch;padding:0 28px;background:#ffffffe6;position:relative;z-index:50}.breadcrumb{width:34px;height:34px;border-radius:8px;display:grid;place-items:center;color:var(--primary)}.top-title h1{font-size:18px}.top-title{display:grid;gap:2px;justify-self:start;min-width:0}.top-title span{white-space:nowrap}.top-search{height:42px;border:1px solid var(--line);border-radius:6px;display:flex;align-items:center;background:#fff;overflow:hidden;justify-self:start;width:100%}.top-search input{border:0;outline:0;flex:1;padding:0 14px;min-width:0}.top-search button{width:44px;height:100%;border:0;background:transparent;color:var(--primary-dark)}.topbar-actions{align-items:center;justify-self:end;position:static;z-index:1}.icon-badge{position:relative;width:38px;height:38px;border:1px solid transparent;background:transparent;color:var(--muted);border-radius:6px;display:inline-grid;place-items:center;flex:0 0 auto;transition:background .16s ease,border-color .16s ease,color .16s ease}.icon-badge span{position:absolute;top:0;right:0;min-width:18px;height:18px;border-radius:999px;background:var(--primary);color:#fff;font-size:11px;display:grid;place-items:center}.topbar-actions .icon-only{flex:0 0 auto;transition:background .16s ease,border-color .16s ease,color .16s ease}.icon-badge:hover,.icon-badge.active,.topbar-actions .icon-only:hover,.topbar-actions .icon-only.active{background:#fff6e4;border-color:#dfc58d;color:var(--primary-dark)}.topbar-popover{position:absolute;top:calc(100% + 12px);right:28px;width:min(360px,calc(100vw - 32px));max-height:min(560px,calc(100vh - 104px));overflow:auto;background:#fff;border:1px solid var(--line);border-radius:8px;box-shadow:var(--shadow-md);padding:12px;display:grid;gap:12px;z-index:80}.popover-head{display:flex;align-items:center;justify-content:space-between;gap:12px;min-height:30px}.popover-head strong{font-size:15px}.popover-section{display:grid;gap:7px}.popover-section h3{margin:0;font-size:12px;font-weight:700;color:var(--muted)}.popover-row{width:100%;min-height:48px;border:1px solid #efe3d1;border-radius:6px;background:#fffefa;color:var(--ink);display:grid;grid-template-columns:minmax(0,1fr);align-items:center;gap:2px;padding:8px 10px;text-align:left}.popover-row.compact{grid-template-columns:auto minmax(0,1fr) auto;min-height:38px;gap:9px}.popover-row:hover,.help-grid button:hover{border-color:#d8c39b;background:#fff8ea}.popover-row span:not(.dot),.help-grid span{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.popover-row small{font-size:12px}.popover-row strong{font-size:13px;color:var(--primary-dark)}.help-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}.help-grid button{min-width:0;min-height:40px;border:1px solid #efe3d1;border-radius:6px;background:#fffefa;color:var(--ink);display:inline-flex;align-items:center;justify-content:flex-start;gap:8px;padding:0 10px}.help-grid svg{flex:0 0 auto;color:var(--primary)}.user-mini{display:flex;align-items:center;gap:9px;min-width:96px}.user-mini div,.top-title{display:grid;gap:2px}.user-mini strong{font-size:14px}.user-mini span{font-size:12px;color:var(--muted)}.view{padding:24px 28px;transition:padding-right .18s ease}body.notifications-panel-open main .view{padding-right:408px}.dashboard-grid{grid-template-columns:minmax(0,1.45fr) minmax(340px,.85fr);align-items:start}.metrics{grid-column:1 / -1}.metrics.five{grid-template-columns:repeat(5,minmax(0,1fr))}.metrics.three{grid-template-columns:repeat(3,minmax(0,1fr))}.metric{min-height:132px;grid-template-columns:auto 1fr;align-items:center;gap:16px;border-color:#eadfcee6}.metric:before{width:0}.metric:after{content:"";position:absolute;right:16px;bottom:12px;width:78px;height:62px;border:2px solid rgba(189,133,47,.08);transform:skew(-20deg)}.metric-icon{width:58px;height:58px;border-radius:50%;border:1px solid #dfc58d;display:grid;place-items:center;color:var(--primary)}.metric strong{font-size:28px}.metric small{font-size:13px}.metric-danger .metric-icon{color:var(--danger);border-color:#efc6c1}.quick-panel,.recent-panel,.notice-panel{grid-column:1}.todo-panel,.distribution-panel{grid-column:2}.quick-grid{display:grid;grid-template-columns:repeat(6,minmax(92px,1fr));gap:18px}.quick-action{min-height:96px;border:0;background:transparent;display:grid;place-items:center;gap:10px;color:var(--ink)}.quick-action svg{width:58px;height:58px;padding:13px;border:1px solid #dfc58d;border-radius:8px;color:var(--primary)}.todo-list,.legend-list,.notice-strip{display:grid;gap:13px}.todo-row,.legend-row{display:grid;grid-template-columns:auto minmax(0,1fr) auto;gap:12px;align-items:center;border:0;background:transparent;text-align:left;color:var(--ink)}.dot{width:10px;height:10px;border-radius:999px;background:var(--primary)}.dot-1{background:#f28a16}.dot-2{background:#ef7d1b}.dot-3{background:#dc3f34}.dot-4{background:#829494}.dot-5{background:#b7a177}.donut-row{display:grid;grid-template-columns:210px minmax(0,1fr);gap:24px;align-items:center}.donut{width:190px;aspect-ratio:1;border-radius:50%;display:grid;place-items:center}.donut>div{width:92px;aspect-ratio:1;border-radius:50%;background:#fff;display:grid;place-items:center;align-content:center}.donut strong,.donut span{display:block}.notice-strip{grid-template-columns:repeat(2,minmax(0,1fr));align-items:stretch;font-family:var(--font-sans);font-size:14px;line-height:1.45;color:var(--muted)}.notice-item{min-width:0;min-height:38px;display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:10px;padding:8px 10px;border:1px solid #f0e4d0;border-radius:6px;background:#fffdf8}.notice-text{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:var(--ink);font-weight:500}.notice-time{color:var(--muted);font-size:12px;font-variant-numeric:tabular-nums;white-space:nowrap}.toolbar.split{display:grid;grid-template-columns:minmax(0,1fr) auto}.filter-grid.rich{grid-template-columns:repeat(4,minmax(150px,1fr))}.filter-actions{grid-column:1 / -1;display:flex;flex-wrap:wrap;gap:8px}.chip{border:1px solid #e4c995;background:#fff8eb;color:#765015;border-radius:999px;min-height:32px;padding:0 12px}.chip.ghost{background:#fff;color:var(--muted)}.btn-primary{color:#fff;background:linear-gradient(180deg,#cf9a43,#aa741f)}.btn-primary:hover{color:#fff}.btn-danger{background:#fff2f0;color:var(--danger);border-color:#f3c2bd}.danger-text{color:var(--danger)}.pagination{display:flex;align-items:center;justify-content:flex-end;flex-wrap:wrap;gap:10px;color:var(--muted)}.pagination select{height:38px;border:1px solid var(--line);border-radius:6px;background:#fff}.sectioned-form h3,.form-grid h3{grid-column:1 / -1;margin:6px 0 0;font-size:15px}.form-grid h3:first-child{margin-top:0}.drawer-actions{position:sticky;top:0;z-index:2;display:flex;flex-wrap:wrap;gap:8px;padding:0 0 12px;margin-bottom:12px;background:var(--panel)}.drawer-form{padding-bottom:16px}.preview-modal{width:min(1180px,calc(100vw - 32px))}.modal.ledger-preview-modal{width:min(1540px,calc(100vw - 24px));padding:18px}.preview-modal .modal-head{position:sticky;top:-16px;z-index:2;background:var(--panel);padding-top:16px;padding-bottom:10px}.preview-action-bar{display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:8px;margin-bottom:12px}.ledger-preview-actions{align-items:flex-start}.ledger-preview-meta{display:flex;align-items:center;flex-wrap:wrap;gap:8px;min-width:0}.ledger-preview-meta strong,.ledger-preview-meta span{overflow-wrap:anywhere}.ledger-preview-meta span{color:var(--muted)}.ledger-preview-content{display:grid;gap:12px}.ledger-preview-table{max-height:min(42vh,420px);border-radius:6px;box-shadow:none}.ledger-preview-table table{table-layout:fixed}.ledger-preview-table th,.ledger-preview-table td{min-width:118px;overflow:hidden;padding:10px 12px;text-overflow:ellipsis;white-space:nowrap}.ledger-preview-table th:nth-child(1),.ledger-preview-table td:nth-child(1){min-width:190px}.ledger-preview-table th:nth-child(6),.ledger-preview-table td:nth-child(6),.ledger-preview-table th:nth-child(13),.ledger-preview-table td:nth-child(13){min-width:240px}.ledger-preview-table th{color:#fff;background:#3f5269}.ledger-preview-table th:first-child,.ledger-preview-table td:first-child{position:sticky;left:0;z-index:1;box-shadow:1px 0 0 var(--line)}.ledger-preview-table th:first-child{z-index:2;background:#3f5269}.ledger-preview-table td:first-child{background:#fff;font-weight:650}.ledger-preview-field-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(178px,1fr));gap:8px}.ledger-preview-field{min-width:0;border:1px solid #eadcc7;border-radius:6px;background:#fffdf8;padding:8px 10px}.ledger-preview-field span,.ledger-preview-field strong{display:block;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.ledger-preview-field span{color:var(--muted);font-size:12px;margin-bottom:4px}.ledger-preview-field strong{color:var(--ink);font-size:14px;font-weight:650}.preview-box{min-height:420px;display:grid;place-items:stretch}.image-preview-reader{display:grid;gap:10px;min-width:0}.preview-toolbar{display:flex;align-items:center;justify-content:flex-end;gap:8px}.preview-zoom-value{min-width:56px;text-align:center;color:var(--muted);font-size:13px;font-variant-numeric:tabular-nums}.image-preview-stage{width:min(1040px,82vw);height:min(72vh,760px);overflow:auto;border:1px solid var(--line);border-radius:8px;background:#f7f4ed;cursor:grab;overscroll-behavior:contain}.image-preview-stage.dragging{cursor:grabbing}.image-preview-stage img{display:block;max-width:none;max-height:none;height:auto;margin:0 auto;-webkit-user-select:none;user-select:none}.preview-box iframe{width:min(900px,80vw);height:70vh;border:1px solid var(--line);border-radius:8px}.preview-text{width:min(900px,80vw);max-height:70vh;overflow:auto;margin:0;border:1px solid var(--line);border-radius:8px;padding:14px;background:#fffdf8;color:var(--ink);white-space:pre-wrap;word-break:break-word}.row-actions{display:flex;gap:8px;flex-wrap:wrap}@media(max-width:1280px){.metrics.five{grid-template-columns:repeat(3,minmax(0,1fr))}.dashboard-grid{grid-template-columns:1fr}.todo-panel,.distribution-panel{grid-column:1}.quick-grid{grid-template-columns:repeat(3,minmax(0,1fr))}}@media(max-width:980px){.login-hero{grid-template-columns:1fr;gap:24px;padding:32px 0}.login-copy{min-height:auto}.topbar{height:auto;grid-template-columns:auto 1fr;padding:14px 16px}.top-search,.topbar-actions{grid-column:1 / -1}.filter-grid.rich,.metrics.five,.metrics.three,.donut-row{grid-template-columns:1fr}}@media(max-width:640px){.login-top{padding:0 20px}.login-hero{width:calc(100% - 32px)}.login-card{padding:26px}.login-copy h1{font-size:36px}.quick-grid,.notice-strip{grid-template-columns:1fr}}.login-page{grid-template-rows:1fr}.login-hero{min-height:100vh;padding:36px 0}.login-card{align-self:center}.sidebar-nav{display:grid;align-content:start;grid-auto-rows:max-content;gap:10px;flex:1;min-height:0;overflow-y:auto;padding-right:0;scrollbar-width:thin;scrollbar-color:rgba(189,133,47,.38) transparent}.sidebar-nav::-webkit-scrollbar{width:6px}.sidebar-nav::-webkit-scrollbar-thumb{background:#bd852f52;border-radius:999px}.nav-group{display:grid;align-self:start;gap:5px}.sidebar .nav-group-toggle{min-height:28px;padding:4px 8px;color:#9a8563;font-size:12px;font-weight:700;letter-spacing:0;text-transform:none;background:transparent}.sidebar .nav-group-toggle:hover{background:transparent;color:var(--primary-dark);transform:none}.nav-group-toggle span{flex:1}.nav-group-items{display:grid;gap:5px}.nav-group-items button{padding-left:14px}.sidebar-rail{display:grid;justify-items:center;gap:7px}.sidebar-rail button{justify-content:center;width:40px;min-height:40px;padding:0}.sidebar-rail button span{display:none}.sidebar-rail button svg{flex:0 0 auto}.sidebar-rail button.active{box-shadow:inset 3px 0 0 var(--primary);transform:none}.sidebar-rail button:hover{transform:none}.view{width:min(100%,1520px);margin:0 auto;min-height:0;overflow:auto;align-content:start;padding:18px 22px}main>.loading,main>.error,main>.panel{min-height:0;overflow:auto}main>.panel{margin:24px 28px}.panel{padding:20px}.panel-head{min-height:34px}.panel-head h2{font-size:17px}.dashboard-grid{grid-template-columns:minmax(0,1.55fr) minmax(360px,.85fr)}.metrics.five{grid-template-columns:repeat(5,minmax(180px,1fr))}.metric{min-width:0}.metric div:last-child{min-width:0}.metric span,.metric small,.metric strong{overflow-wrap:anywhere}.quick-groups{display:grid;gap:18px}.quick-group{display:grid;gap:10px}.quick-group h3{margin:0;color:var(--muted);font-size:13px;font-weight:700}.quick-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:12px}.quick-action{min-height:74px;border:1px solid var(--line);border-radius:8px;background:#fffdf8;grid-template-columns:auto minmax(0,1fr);place-items:center start;padding:12px;text-align:left}.quick-action:hover{border-color:#d7b96d;background:#fff8eb;box-shadow:var(--shadow-sm)}.quick-action svg{width:42px;height:42px;padding:10px}.quick-action span{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-weight:650}.filter-shell{min-width:0}.contract-search{box-shadow:none}.active-filters{display:flex;flex-wrap:wrap;align-items:center;gap:8px;margin-top:10px}.active-chip{min-height:30px;border:1px solid #e2c991;border-radius:999px;background:#fff9ed;color:#6e501c;display:inline-flex;align-items:center;gap:6px;max-width:260px;padding:0 10px}.active-chip span{color:#9b7a42;font-size:12px}.active-chip strong{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:12px}.active-more{color:var(--muted);font-size:12px}.filter-sections{margin-top:12px;background:#fff;border:1px solid var(--line);border-radius:8px;box-shadow:var(--shadow-sm);overflow:hidden}.filter-section{border-bottom:1px solid var(--line)}.filter-section:last-of-type{border-bottom:0}.filter-section summary{min-height:44px;padding:0 16px;display:flex;align-items:center;gap:8px;cursor:pointer;list-style:none;color:#59452a;font-weight:700;background:#fffdf8}.filter-section summary::-webkit-details-marker{display:none}.filter-section summary svg{margin-left:auto;transition:transform .16s ease}.filter-section[open] summary svg{transform:rotate(180deg)}.filter-section-grid{display:grid;grid-template-columns:repeat(5,minmax(150px,1fr));gap:12px;padding:14px 16px 16px}.filter-actions{padding:14px 16px;border-top:1px solid var(--line)}.toolbar.split{align-items:start;grid-template-columns:minmax(0,1fr) max-content}.toolbar-actions{max-width:360px}.toolbar-actions .btn{min-width:106px}.table-wrap{max-width:100%}table{table-layout:fixed}.contract-ledger-table{min-width:1880px}.contract-ledger-table th:nth-child(1),.contract-ledger-table td:nth-child(1){width:132px}.contract-ledger-table th:nth-child(2),.contract-ledger-table td:nth-child(2){width:190px}.contract-ledger-table th:nth-child(3),.contract-ledger-table td:nth-child(3),.contract-ledger-table th:nth-child(15),.contract-ledger-table td:nth-child(15),.contract-ledger-table th:nth-child(16),.contract-ledger-table td:nth-child(16){width:108px}.contract-ledger-table th:nth-child(4),.contract-ledger-table td:nth-child(4),.contract-ledger-table th:nth-child(11),.contract-ledger-table td:nth-child(11),.contract-ledger-table th:nth-child(12),.contract-ledger-table td:nth-child(12){width:112px}.contract-ledger-table th:nth-child(5),.contract-ledger-table td:nth-child(5),.contract-ledger-table th:nth-child(6),.contract-ledger-table td:nth-child(6),.contract-ledger-table th:nth-child(7),.contract-ledger-table td:nth-child(7){width:170px}.contract-ledger-table th:nth-child(8),.contract-ledger-table td:nth-child(8),.contract-ledger-table th:nth-child(9),.contract-ledger-table td:nth-child(9){width:100px}.contract-ledger-table th:nth-child(10),.contract-ledger-table td:nth-child(10){width:190px}.contract-ledger-table th:nth-child(13),.contract-ledger-table td:nth-child(13){width:180px}.contract-ledger-table th:nth-child(14),.contract-ledger-table td:nth-child(14){width:138px}th,td{overflow-wrap:anywhere}td{color:#2d2a25}td strong,td small,td span{min-width:0}td strong{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}td small{margin-top:3px}.compact-table table{min-width:820px}.badge{max-width:100%}.detail-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.detail-grid div{min-width:0}.detail-grid strong{overflow-wrap:anywhere}.modal{width:min(820px,calc(100vw - 32px))}.drawer{width:min(620px,100vw)}.field input,.field select,.field textarea,.searchbar input,.top-search input,.btn{min-width:0}.btn span{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.dashboard-grid{gap:14px;grid-template-rows:max-content max-content max-content max-content;grid-auto-rows:max-content}.dashboard-grid .panel{min-height:0;padding:16px}.dashboard-grid .panel-head{min-height:28px;margin-bottom:10px}.dashboard-grid .metrics{gap:12px}.dashboard-grid .metric{min-height:92px;padding:14px;gap:12px}.dashboard-grid .metric:after{width:56px;height:42px}.dashboard-grid .metric-icon{width:44px;height:44px}.dashboard-grid .metric strong{font-size:24px}.dashboard-grid .metric small{font-size:12px}.quick-groups{gap:12px}.quick-group{gap:8px}.dashboard-grid .quick-grid{gap:10px}.dashboard-grid .quick-action{min-height:58px;padding:10px;gap:8px}.dashboard-grid .quick-action svg{width:36px;height:36px;padding:8px}.dashboard-grid .todo-list,.dashboard-grid .legend-list,.dashboard-grid .notice-strip{gap:9px}.dashboard-grid .todo-row,.dashboard-grid .legend-row{gap:10px}.dashboard-grid .recent-panel{min-height:0;overflow:hidden}.dashboard-grid .recent-panel .table-wrap{max-height:clamp(220px,31vh,300px)}.dashboard-grid .compact-table th,.dashboard-grid .compact-table td{padding:9px 10px}.dashboard-grid .donut-row{grid-template-columns:150px minmax(0,1fr);gap:14px}.dashboard-grid .donut{width:140px}.dashboard-grid .donut>div{width:72px}@media(max-width:1400px){.metrics.five{grid-template-columns:repeat(3,minmax(180px,1fr))}.global-log-summary{grid-template-columns:repeat(2,minmax(180px,1fr))}.filter-section-grid{grid-template-columns:repeat(3,minmax(150px,1fr))}}@media(max-width:1180px){.dashboard-grid{grid-template-columns:1fr}.todo-panel,.distribution-panel{grid-column:1}.toolbar.split{grid-template-columns:1fr}.toolbar-actions{max-width:none;justify-content:flex-start}.admin-permission-layout,.admin-ai-layout{grid-template-columns:1fr}.global-log-toolbar{grid-template-columns:minmax(260px,1fr) minmax(150px,190px)}.import-status-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.import-status-grid div:nth-child(2){border-right:0}.import-status-grid div:nth-child(-n+2){border-bottom:1px solid var(--line)}.global-log-actions{justify-content:flex-start}}@media(max-width:980px){body{overflow:auto}.app,.app.nav-collapsed{display:block;height:auto;min-height:100dvh;overflow:visible}.sidebar{position:relative;height:auto;max-height:none;overflow:visible}main{display:block;overflow:visible}.view{overflow:visible}.sidebar-nav{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.app.nav-collapsed .brand strong{display:block}.app.nav-collapsed .brand>svg{display:block}.app.nav-collapsed .sidebar-nav{display:none}.nav-group-items{grid-template-columns:1fr}.view{padding:18px}.filter-section-grid{grid-template-columns:repeat(2,minmax(150px,1fr))}.permission-section,.user-create-form,.approval-filter-bar,.settings-grid.dense{grid-template-columns:1fr}}@media(max-width:720px){.login-page{grid-template-rows:1fr}.login-top{display:none;height:64px;padding:0 18px}.login-hero{min-height:100vh;width:calc(100% - 28px);padding:18px 0 26px}.login-copy{justify-content:flex-start;gap:14px}.hero-mark{width:58px;height:58px;border-radius:14px}.login-copy h1{font-size:34px}.login-copy p,.login-title p{font-size:14px}.topbar{grid-template-columns:auto 1fr}.sidebar{position:sticky;top:0;z-index:25;padding:12px 14px;gap:10px;box-shadow:0 8px 24px #5b442014;overflow:hidden}.app.nav-collapsed .sidebar{padding:12px 14px}.brand{padding:0}.app.nav-collapsed .brand{justify-content:flex-start;padding:0}.app.nav-collapsed .sidebar-menu{margin-left:auto}.sidebar-nav{display:flex;gap:8px;overflow-x:auto;max-width:100%;padding:2px 0 6px;scrollbar-width:none}.sidebar-nav::-webkit-scrollbar{display:none}.nav-group{display:flex;gap:8px;flex:0 0 auto}.sidebar .nav-group-toggle{display:none}.nav-group-items{display:flex;gap:8px}.nav-group-items button{width:auto;min-height:38px;padding:0 12px;white-space:nowrap;flex:0 0 auto;border:1px solid rgba(234,223,206,.9);background:#fffdf8}.nav-group-items button span{white-space:nowrap}.nav-group-items button svg{flex:0 0 auto}.top-search{width:100%}.metrics.five,.metrics.three,.global-log-summary,.global-log-toolbar,.filter-section-grid,.detail-grid,.quick-grid,.sidebar-nav{grid-template-columns:1fr}.global-log-actions{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));width:100%}.global-log-actions .btn{width:100%}.import-status-grid{grid-template-columns:1fr}.import-status-grid div,.import-status-grid div:nth-child(2){border-right:0;border-bottom:1px solid var(--line)}.import-status-grid div:last-child{border-bottom:0}.panel{padding:16px}.toolbar-actions{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));width:100%}.toolbar-actions .btn{width:100%}.pagination{justify-content:flex-start}}.tabs-top{flex-wrap:wrap;min-height:38px;gap:7px;overflow-x:visible}.tabs-top button{min-height:36px;padding:0 11px;border-radius:5px;font-size:14px}.field{gap:5px}.field span{font-size:13px}.field input,.field select,.field textarea{border-color:#e7dccb;border-radius:5px;background:#fffefa}.field input,.field select{height:36px;padding:0 10px;font-size:14px}.field textarea{padding:9px 10px}input[type=checkbox]{width:14px;height:14px;accent-color:var(--primary)}.badge{min-height:20px;padding:1px 7px;border-radius:999px;font-size:11px;line-height:18px}.notice.strip,.subtle-notice{min-height:0;align-items:center;gap:8px;padding:8px 11px;border-radius:6px;background:#fffdf7;line-height:1.45;font-size:13px}.notice.strip svg,.subtle-notice svg{width:14px;height:14px;flex:0 0 auto;color:#8e7449}.check-row{min-height:30px;gap:7px;border-color:#ebdfcd;border-radius:5px;padding:5px 8px;background:#fffefa;color:#3d362e;font-size:13px;line-height:1.2;box-shadow:none}.check-row.compact{padding:4px 8px}.check-row:hover{border-color:#d8c39b;background:#fffaf0}.check-row span{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.check-row input{flex:0 0 auto}.plain-check{font-size:13px;color:#51483b}.btn{height:36px;border-radius:5px;padding:0 12px;font-size:14px}.btn svg{flex:0 0 auto}.admin-permission-layout{grid-template-columns:minmax(260px,.68fr) minmax(0,1.32fr);align-items:stretch}.role-list-panel{align-self:stretch;display:grid;grid-template-rows:auto minmax(0,1fr);min-height:0}.role-picker-list{display:grid;gap:8px;min-height:0;max-height:540px;overflow:auto;padding-right:3px;scrollbar-width:thin;scrollbar-color:rgba(189,133,47,.34) transparent}.role-picker-list::-webkit-scrollbar{width:6px}.role-picker-list::-webkit-scrollbar-thumb{background:#bd852f52;border-radius:999px}.role-card{width:100%;min-width:0;border:1px solid transparent;border-radius:6px;background:#fffefa;display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:10px;padding:10px 11px;color:var(--ink);text-align:left;transition:background .16s ease,border-color .16s ease,box-shadow .16s ease}.role-card:hover{border-color:#dcc38f;background:#fffaf0}.role-card.active{border-color:#d9b56f;background:#fff6e4;box-shadow:inset 3px 0 0 var(--primary)}.role-card-main{display:grid;gap:3px;min-width:0}.role-card-main strong,.role-card-main small{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.role-card-main strong{font-size:15px}.role-card-main small{color:var(--muted);font-size:12px}.role-card .badge{justify-self:end}.role-editor{gap:12px}.permission-editor{gap:10px;padding:10px;border-radius:6px;background:#fffefa}.permission-section{grid-template-columns:76px minmax(0,1fr);gap:10px;padding-top:9px;border-top:1px solid #f0e6d6}.permission-section>strong{line-height:28px;font-size:12px}.dense-permission-grid,.dense-role-checks{gap:6px}.dense-role-checks{display:grid;grid-template-columns:repeat(auto-fill,minmax(104px,1fr))}.dense-permission-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(112px,1fr))}.user-create-form{gap:9px}.borrow-request-panel .panel-head,.borrow-request-panel .subtle-notice{margin-bottom:10px}.borrow-request-panel .borrow-form{display:grid;grid-template-columns:minmax(280px,1.45fr) repeat(4,minmax(130px,.8fr)) auto;align-items:end;gap:9px}.borrow-request-panel .borrow-form .field{flex:initial}.borrow-request-panel .borrow-form .btn{min-width:142px}.borrow-view .borrow-metrics{grid-template-columns:repeat(4,minmax(0,1fr))}.borrow-ledger-panel .panel-head{align-items:flex-start}.borrow-ledger-panel .panel-head small{display:block;margin-top:4px}.borrow-table table{min-width:1120px}.borrow-table td{vertical-align:top}.borrow-table td:nth-child(1){min-width:220px}.modal.borrow-manual-modal,.modal.borrow-editor-modal{width:min(980px,calc(100vw - 32px))}.borrow-manual-form{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));align-items:end}.borrow-editor{display:grid;gap:14px}.borrow-editor-summary{border:1px solid var(--line);border-radius:8px;background:#fffdf8;padding:14px;display:flex;align-items:flex-start;justify-content:space-between;gap:12px}.borrow-editor-summary>div:first-child,.section-title{min-width:0;display:grid;gap:4px}.borrow-editor-summary strong,.borrow-editor-meta strong,.borrow-version-card strong{overflow-wrap:anywhere}.borrow-editor-summary small,.section-title small,.borrow-version-card small{color:var(--muted)}.borrow-editor-grid,.borrow-editor-meta{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px}.borrow-editor-meta>div{border:1px solid var(--line);border-radius:8px;padding:10px 12px;background:#fff;display:grid;gap:4px}.borrow-editor-meta span{color:var(--muted);font-size:12px}.borrow-version-section,.borrow-access-section{display:grid;gap:10px}.section-title{grid-template-columns:minmax(0,1fr) auto;align-items:baseline}.section-title h3{margin:0;font-size:16px;letter-spacing:0}.borrow-version-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px}.borrow-version-card{border:1px solid var(--line);border-radius:8px;background:#fff;padding:12px;display:grid;grid-template-columns:auto minmax(0,1fr);gap:10px;align-items:start}.borrow-version-card>.link-btn,.borrow-version-card>.btn{grid-column:1 / -1;justify-self:start}.approval-filter-bar.compact-filter-bar{width:max-content;max-width:100%;grid-template-columns:repeat(2,minmax(180px,230px)) max-content;gap:10px;margin-bottom:12px}.approval-filter-bar.compact-filter-bar>.btn{justify-self:start;min-width:86px}.refined-export-layout{grid-template-columns:minmax(0,1.15fr) minmax(360px,.85fr);align-items:start;gap:14px}.ledger-export-panel .filter-section{border:1px solid var(--line);border-radius:7px;background:#fffefa;padding:13px;box-shadow:none}.ledger-export-panel .filter-section:last-of-type{border-bottom:1px solid var(--line)}.ledger-export-panel .filter-section-head{display:flex;align-items:baseline;justify-content:space-between;gap:10px;margin-bottom:11px}.ledger-export-panel .filter-section-head strong{font-size:14px}.ledger-export-panel .filter-section-head span{color:var(--muted);font-size:12px}.ledger-export-panel .filter-section-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:9px 10px;padding:0}.ledger-export-panel .chip-row{gap:6px}.ledger-export-panel .chip-row .check-row{max-width:132px}.ledger-export-panel .ledger-actions{margin-top:10px;padding-top:10px;border-top:1px solid #f0e6d6;gap:9px}.ledger-export-panel .topbar-actions{gap:7px}@media(max-width:1320px){body.notifications-panel-open main .view{padding-right:28px}.topbar-popover{right:16px}.borrow-request-panel .borrow-form,.borrow-view .borrow-metrics,.borrow-editor-grid,.borrow-editor-meta,.borrow-version-grid,.dev-sync-layout,.refined-export-layout{grid-template-columns:1fr}.borrow-request-panel .borrow-form{grid-template-columns:repeat(2,minmax(0,1fr))}.borrow-request-panel .borrow-form .btn{width:fit-content}}@media(max-width:980px){.admin-permission-layout,.borrow-request-panel .borrow-form,.borrow-manual-form,.borrow-editor-grid,.borrow-editor-meta,.borrow-version-grid,.approval-filter-bar.compact-filter-bar,.dev-sync-view .metrics.four,.dev-sync-filters,.ledger-template-row,.approval-linear-flow,.approval-path-meta,.ledger-export-panel .filter-section-grid,.custom-field-row,.custom-fields-read-grid{grid-template-columns:1fr;width:100%}.borrow-request-panel .borrow-form .btn,.borrow-version-card>.btn,.ledger-template-row .btn,.approval-filter-bar.compact-filter-bar>.btn{width:100%}.dev-sync-table-wrap{max-height:none;min-height:320px}.ledger-template-row,.approval-flow-summary{display:grid}.approval-flow-tags{justify-content:flex-start}.approval-linear-flow{gap:8px}.approval-flow-step,.approval-flow-step:last-child{grid-template-columns:34px minmax(0,1fr)}.approval-step-line{grid-column:1;width:2px;height:18px;justify-self:center;margin:-2px 0 -4px;background:linear-gradient(180deg,var(--line),rgba(184,135,47,.45))}}
