:root{font-family:-apple-system,BlinkMacSystemFont,Segoe UI,PingFang SC,Microsoft YaHei,sans-serif;color:#111827;background:#fff;font-synthesis:none;text-rendering:optimizeLegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}*{box-sizing:border-box}body{min-width:320px;min-height:100vh;margin:0;background:#fff}button,input,select,textarea{font:inherit}#root{min-height:100vh}.page-shell{min-height:100vh;background:#fff}.approval-panel{width:100%;max-width:550px;margin:0 auto;padding:24px 39px 44px}.page-heading,.intro-copy{margin-left:16px;color:#606266;font-size:14px;line-height:1.95}.page-heading h1{display:flex;flex-wrap:wrap;align-items:baseline;gap:8px;margin:0 0 4px;color:#111827;font-size:20px;font-weight:800;line-height:1.4}.page-user-name{color:#606266;font-size:14px;font-weight:600;overflow-wrap:anywhere}.page-heading p{margin:0}.intro-copy h1{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.intro-copy p{margin:0 0 26px}.approval-form{margin-top:34px}.template-tabs{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;margin:22px 0 0 16px}.template-tabs button{min-width:0;height:36px;border:1px solid #dcdfe6;border-radius:4px;background:#fff;color:#606266;cursor:pointer;font:inherit;font-size:14px;font-weight:700;padding:0 10px;transition:background-color .16s ease,border-color .16s ease,color .16s ease,box-shadow .16s ease}.template-tabs button.active,.template-tabs button:hover,.template-tabs button:focus-visible{border-color:#1677ff;color:#1677ff;outline:none}.template-tabs button.active{background:#eef5ff}.template-title{margin:0 0 22px 16px}.template-title h2{margin:0;color:#111827;font-size:18px;font-weight:800;line-height:1.4}.template-title span{display:block;margin-top:4px;color:#909399;font-size:12px;line-height:1.4;overflow-wrap:anywhere}.loading-state,.error-state{margin:24px 0 0 16px;border-radius:4px;font-size:14px;line-height:1.6;padding:12px 14px}.loading-state{background:#f5f7fa;color:#606266}.error-state{background:#fff2f0;color:#d92d20}.form-row{display:grid;grid-template-columns:84px minmax(0,1fr);align-items:start;column-gap:16px;margin-bottom:18px}.form-row>label{padding-top:5px;color:#111827;font-size:14px;font-weight:700;line-height:1.45}.form-row>label span,.inline-field label span{margin-right:1px;color:#e02020}.control-stack{min-width:0}.form-row input,.form-row select,.form-row textarea,.category-select-trigger,.picker-button{width:100%;border:1px solid #dcdfe6;border-radius:4px;background:#fff;color:#111827;font:inherit;font-size:14px;transition:border-color .16s ease,box-shadow .16s ease}.form-row input,.form-row select,.category-select-trigger,.picker-button{height:32px;padding:0 12px}.form-row textarea{min-height:80px;resize:vertical;padding:12px 14px}.form-row select,.inline-field select{-webkit-appearance:none;-moz-appearance:none;appearance:none;background-image:linear-gradient(45deg,transparent 50%,#909399 50%),linear-gradient(135deg,#909399 50%,transparent 50%);background-position:calc(100% - 18px) 13px,calc(100% - 13px) 13px;background-size:5px 5px,5px 5px;background-repeat:no-repeat;padding-right:36px}.form-row input::placeholder,.form-row textarea::placeholder,.inline-field input::placeholder,.inline-field textarea::placeholder{color:#a8abb2}.form-row input:focus,.form-row select:focus,.form-row textarea:focus,.category-select-trigger:focus-visible,.inline-field input:focus,.inline-field select:focus,.inline-field textarea:focus,.picker-button:focus-visible{border-color:#1677ff;box-shadow:0 0 0 3px #1677ff1a;outline:none}.form-row.has-error input,.form-row.has-error select,.form-row.has-error textarea,.inline-field.has-error input,.inline-field.has-error select,.inline-field.has-error textarea{border-color:#e02020}.error-text{margin:6px 0 0;color:#e02020;font-size:12px;line-height:1.4}.field-note{margin:24px 0 20px 100px;color:#606266;font-size:14px}.control-stack .field-note{margin:6px 0 0;font-size:12px}.field-note.error{color:#e02020}.supplier-select{position:relative}.category-select-trigger{display:flex;align-items:center;justify-content:space-between;background-image:linear-gradient(45deg,transparent 50%,#909399 50%),linear-gradient(135deg,#909399 50%,transparent 50%);background-position:calc(100% - 18px) 13px,calc(100% - 13px) 13px;background-size:5px 5px,5px 5px;background-repeat:no-repeat;cursor:pointer;padding-right:36px;text-align:left}.category-select-trigger span{min-width:0;overflow:hidden;color:#a8abb2;text-overflow:ellipsis;white-space:nowrap}.category-select-trigger.has-value span{color:#111827}.supplier-select-menu{position:absolute;z-index:20;top:calc(100% + 4px);right:0;left:0;max-height:280px;overflow-y:auto;border:1px solid #dcdfe6;border-radius:4px;background:#fff;box-shadow:0 10px 24px #0f172a1f}.supplier-select-menu button{display:grid;gap:2px;width:100%;padding:9px 12px;border:0;border-bottom:1px solid #eef0f3;background:#fff;color:#111827;font:inherit;text-align:left;cursor:pointer}.supplier-select-menu button:last-of-type{border-bottom:0}.supplier-select-menu button:hover,.supplier-select-menu button.highlighted{background:#f4f8ff}.supplier-select-menu button span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:14px;font-weight:600}.supplier-select-menu button small{overflow:hidden;color:#6b7280;text-overflow:ellipsis;white-space:nowrap;font-size:12px}.category-select-menu button small{line-height:1.45;overflow:visible;white-space:normal}.supplier-select-empty{margin:0;padding:10px 12px;color:#606266;font-size:12px}.table-field{margin:28px 0 24px 16px}.table-header{display:flex;align-items:center;justify-content:space-between;gap:14px;margin-bottom:14px}.table-header h2{margin:0;color:#111827;font-size:15px;font-weight:800;line-height:1.4}.text-button{border:0;background:transparent;color:#1677ff;cursor:pointer;font:inherit;font-size:14px;font-weight:700;padding:4px 0}.text-button:hover,.text-button:focus-visible{color:#0f63d7;outline:none}.text-button.danger{color:#d92d20}.table-row-list{display:grid;gap:14px}.supplier-card{overflow:hidden;border:1px solid #dcdfe6;border-radius:4px;background:#fff}.supplier-card-title{display:flex;align-items:center;justify-content:space-between;gap:12px;min-height:34px;background:#f5f5f5;color:#111827;padding:0 12px}.table-card-actions{display:flex;align-items:center;gap:12px;flex:0 0 auto}.supplier-card-title h2{margin:0;font-size:14px;font-weight:800;line-height:1.4}.table-card-body{display:grid;gap:16px;padding:16px 12px}.inline-field{display:grid;grid-template-columns:90px minmax(0,1fr);align-items:start;gap:12px;margin-bottom:0}.inline-field:last-child{margin-bottom:0}.inline-field label{padding-top:5px;color:#111827;font-size:14px;font-weight:700;line-height:1.35}.inline-field input,.inline-field select,.inline-field textarea,.picker-button{width:100%;border:1px solid #dcdfe6;border-radius:4px;background:#fff;color:#111827;font:inherit;font-size:14px;transition:border-color .16s ease,box-shadow .16s ease}.inline-field input,.inline-field select,.picker-button{height:32px;padding:0 12px}.inline-field textarea{min-height:74px;resize:vertical;padding:10px 12px}.add-detail-button{display:flex;align-items:center;justify-content:center;gap:4px;width:100%;height:36px;margin-top:16px;border:1px solid #dcdfe6;border-radius:4px;background:#fff;color:#1677ff;cursor:pointer;font:inherit;font-size:14px;font-weight:700;transition:border-color .16s ease,background-color .16s ease,box-shadow .16s ease}.add-detail-button span{font-size:18px;font-weight:400;line-height:1}.add-detail-button:hover,.add-detail-button:focus-visible{border-color:#1677ff;background:#f7fbff;box-shadow:0 0 0 3px #1677ff14;outline:none}.upload-control{display:flex;align-items:center;flex-wrap:wrap;gap:10px;color:#606266;font-size:13px}.picker-button{background:#fff;color:#606266;cursor:pointer;text-align:left}.picker-button:hover{border-color:#1677ff;color:#1677ff}.department-picker-trigger{display:flex;align-items:center;justify-content:space-between;gap:10px;width:100%;height:32px;border:1px solid #dcdfe6;border-radius:3px;background:#fff;color:#a8abb2;cursor:pointer;font:inherit;font-size:14px;padding:0 10px 0 12px;text-align:left;transition:border-color .16s ease,box-shadow .16s ease}.department-picker-trigger.has-value{color:#111827}.department-picker-trigger:disabled{cursor:not-allowed;opacity:.7}.department-picker-trigger span:first-child{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.department-picker-trigger span:last-child{color:#8d939c;font-size:22px;font-weight:300;line-height:1}.department-picker-trigger:hover:not(:disabled),.department-picker-trigger:focus-visible{border-color:#1677ff;box-shadow:0 0 0 3px #1677ff1a;outline:none}.department-modal-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;z-index:36;display:grid;place-items:center;background:#11182738;padding:18px}.department-modal{width:min(640px,calc(100vw - 32px));height:min(560px,calc(100vh - 32px));display:grid;grid-template-rows:minmax(0,1fr) 72px;overflow:hidden;border-radius:6px;background:#fff;box-shadow:0 14px 42px #0000002e}.department-modal-body{display:grid;grid-template-columns:320px minmax(0,1fr);min-height:0}.department-modal-left{min-width:0;overflow:hidden;background:#f7f8fa;padding:24px}.department-search{position:relative;display:block;margin-bottom:16px}.department-search input{width:100%;height:32px;border:1px solid #1677ff;border-radius:3px;background:#fff;color:#111827;font:inherit;font-size:14px;padding:0 10px 0 34px}.department-search input::placeholder{color:#909399}.department-search input:focus{border-color:#1677ff;box-shadow:0 0 0 3px #1677ff14;outline:none}.department-search span{position:absolute;top:9px;left:12px;width:13px;height:13px;border:1.5px solid #8d939c;border-radius:50%}.department-search span:after{position:absolute;right:-5px;bottom:-4px;width:7px;height:1.5px;border-radius:2px;background:#8d939c;content:"";transform:rotate(45deg)}.department-list{height:calc(100% - 48px);overflow-y:auto;padding:0 0 16px}.department-row{display:flex;align-items:center;min-height:36px;min-width:0;padding-right:4px}.department-expand{position:relative;width:16px;height:24px;flex:0 0 auto;border:0;background:transparent;cursor:pointer;padding:0}.department-expand:before{position:absolute;top:8px;left:5px;width:0;height:0;border-top:4px solid transparent;border-bottom:4px solid transparent;border-left:5px solid #a8abb2;content:""}.department-expand.is-expanded:before{top:10px;left:3px;border-top:5px solid #a8abb2;border-right:4px solid transparent;border-left:4px solid transparent;border-bottom:0}.department-expand.is-empty:before{display:none}.department-expand:disabled{cursor:default}.department-check{display:grid;width:18px;height:18px;flex:0 0 auto;place-items:center;margin-right:8px}.department-check input{position:absolute;width:1px;height:1px;opacity:0;pointer-events:none}.department-check span{display:block;width:14px;height:14px;border:1px solid #bfc5ce;border-radius:2px;background:#fff}.department-check input:checked+span{position:relative;border-color:#1677ff;background:#1677ff}.department-check input:checked+span:after{position:absolute;top:1px;left:4px;width:4px;height:8px;border:solid #ffffff;border-width:0 2px 2px 0;content:"";transform:rotate(45deg)}.department-name-button{display:flex;align-items:center;min-width:0;flex:1 1 auto;gap:8px;border:0;background:transparent;color:#111827;cursor:pointer;font:inherit;font-size:14px;font-weight:700;padding:0;text-align:left}.department-name-button span:last-child{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.department-folder{position:relative;width:20px;height:15px;flex:0 0 auto;border-radius:2px;background:#5da2f4}.department-folder:before{position:absolute;top:-4px;left:2px;width:9px;height:5px;border-radius:2px 2px 0 0;background:#5da2f4;content:""}.department-empty{color:#909399;font-size:13px;line-height:1.6;padding:18px 0 0 24px}.department-modal-right{min-width:0;background:#fff;padding:35px 26px}.department-modal-right h2{margin:0 0 18px;color:#111827;font-size:14px;font-weight:800;line-height:1.4}.department-modal-right p{margin:0;color:#606266;font-size:13px}.department-modal-footer{display:flex;align-items:center;justify-content:flex-end;gap:12px;background:#fff;padding:12px 22px 22px}.department-modal-footer .primary-button,.department-modal-footer .secondary-button{width:132px;height:32px}.approval-relation-control{display:grid;gap:8px;min-width:0}.approval-add-row{display:flex;align-items:center;gap:12px;min-width:0}.approval-add-button{display:inline-flex;align-items:center;justify-content:center;width:120px;height:32px;flex:0 0 auto;border:1px solid #dcdfe6;border-radius:4px;background:#fff;color:#111827;cursor:pointer;font:inherit;font-size:14px;font-weight:700;transition:border-color .16s ease,color .16s ease,box-shadow .16s ease}.approval-add-button:hover,.approval-add-button:focus-visible{border-color:#1677ff;color:#1677ff;box-shadow:0 0 0 3px #1677ff1a;outline:none}.approval-relation-placeholder{min-width:0;color:#a8abb2;font-size:13px;line-height:1.4;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.approval-selected-list{display:grid;gap:8px}.approval-selected-card{display:grid;grid-template-columns:20px minmax(0,1fr) 24px;align-items:center;column-gap:8px;min-height:42px;border-radius:3px;background:#f6f7f9;padding:6px 8px 6px 10px}.approval-selected-icon{position:relative;display:block;width:18px;height:24px;border-radius:2px;background:#c9cdd4}.approval-selected-icon:before,.approval-selected-icon:after{position:absolute;left:5px;width:8px;height:2px;border-radius:2px;background:#e9edf2;content:""}.approval-selected-icon:before{top:8px}.approval-selected-icon:after{top:13px}.approval-selected-content{display:grid;gap:2px;min-width:0}.approval-selected-title{display:flex;align-items:center;gap:6px;min-width:0}.approval-selected-title strong{min-width:0;color:#111827;font-size:13px;font-weight:800;line-height:1.3;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.approval-selected-title em{flex:0 0 auto;border-radius:2px;background:#e8f2ff;color:#1677ff;font-size:12px;font-style:normal;font-weight:800;line-height:1;padding:2px 3px}.approval-selected-meta{color:#909399;font-size:12px;line-height:1.3}.approval-selected-card>button{width:24px;height:24px;border:0;background:transparent;color:#909399;cursor:pointer;font-size:20px;line-height:1;padding:0}.approval-selected-card>button:hover,.approval-selected-card>button:focus-visible{color:#606266;outline:none}.approval-modal-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;z-index:30;display:grid;place-items:center;background:#11182747;padding:18px}.approval-modal{width:min(500px,calc(100vw - 32px));max-height:min(620px,calc(100vh - 36px));display:flex;flex-direction:column;overflow:hidden;border-radius:3px;background:#fff;box-shadow:0 14px 42px #0000003d}.approval-modal-header{display:flex;align-items:center;justify-content:space-between;min-height:42px;background:#3578ca;color:#fff;padding:0 14px 0 18px}.approval-modal-header h2{margin:0;font-size:14px;font-weight:800;line-height:1}.approval-modal-header button{width:28px;height:28px;border:0;background:transparent;color:#fff;cursor:pointer;font-size:26px;line-height:1}.approval-modal-toolbar{display:grid;grid-template-columns:minmax(0,1fr) 176px;align-items:center;gap:12px;padding:18px 20px 14px}.approval-modal-tabs{display:flex;align-items:center;gap:20px;min-width:0}.approval-modal-tabs button{border:0;background:transparent;color:#606266;cursor:pointer;font:inherit;font-size:13px;padding:0}.approval-modal-tabs button.active{color:#111827;font-weight:800}.approval-modal-toolbar input{width:100%;height:28px;border:1px solid #dcdfe6;border-radius:3px;color:#111827;font:inherit;font-size:13px;padding:0 10px}.approval-modal-body{display:grid;gap:10px;min-height:250px;overflow-y:auto;overscroll-behavior:contain;padding:0 20px 12px}.approval-modal-empty{display:grid;min-height:140px;place-items:center;border:1px solid #e5e7eb;background:#fafafa;color:#909399;font-size:13px}.approval-apply-card{position:relative;display:grid;grid-template-columns:22px minmax(0,1fr);gap:10px;min-height:74px;border:1px solid #e1e4ea;background:#fff;cursor:pointer;padding:14px 16px}.approval-apply-card:hover{background:#fafafa}.approval-apply-card.is-disabled{cursor:not-allowed;opacity:.48}.approval-apply-card.is-disabled:hover{background:#fff}.approval-apply-card input{width:14px;height:14px;margin-top:12px}.approval-apply-content{display:grid;gap:7px;min-width:0}.approval-apply-title{display:flex;align-items:center;gap:8px;padding-right:82px}.approval-apply-title strong{color:#111827;font-size:14px;font-weight:800;line-height:1.3}.approval-apply-title em{border-radius:2px;background:#e8f2ff;color:#1677ff;font-size:12px;font-style:normal;font-weight:800;line-height:1;padding:3px 4px}.approval-apply-time{position:absolute;top:13px;right:16px;color:#606266;font-size:12px}.approval-apply-line{min-width:0;color:#111827;font-size:13px;font-weight:700;line-height:1.35;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.approval-modal-footer{display:flex;align-items:center;justify-content:space-between;gap:12px;min-height:52px;border-top:1px solid #edf0f5;background:#f7f8fa;padding:8px 20px}.approval-modal-footer>span{color:#909399;font-size:13px}.approval-modal-footer>div{display:flex;align-items:center;gap:6px}.tips-block{margin:0 0 26px 16px;color:#606266;font-size:14px;line-height:1.9}.tips-block p{margin:0}.file-input{display:none}.upload-button{display:inline-flex;align-items:center;justify-content:center;height:32px;border:1px solid #dcdfe6;border-radius:4px;background:#fff;color:#111827;cursor:pointer;font-size:14px;font-weight:700;padding:0 12px;transition:border-color .16s ease,color .16s ease,box-shadow .16s ease}.upload-button:hover,.file-input:focus-visible+.upload-button{border-color:#1677ff;color:#1677ff;box-shadow:0 0 0 3px #1677ff1a}.attachment-list{display:grid;gap:8px;margin:12px 0 0;padding:0;list-style:none}.attachment-list li{display:flex;align-items:center;justify-content:space-between;gap:12px;min-height:34px;border:1px solid #edf0f5;border-radius:4px;background:#fafbfc;color:#111827;font-size:13px;padding:6px 10px}.attachment-list span{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.form-divider{height:1px;margin:28px 0 26px 16px;background:#edf0f5}.flow-section{margin-left:16px}.flow-section h2{margin:0 0 22px;color:#111827;font-size:15px;font-weight:800;line-height:1.4}.flow-section h2 span{margin-left:4px;color:#111827;font-size:13px;font-weight:700}.flow-list{display:grid;gap:0}.flow-step{position:relative;display:grid;grid-template-columns:28px minmax(0,1fr);column-gap:14px;min-height:92px}.flow-step:before{position:absolute;top:22px;bottom:-2px;left:10px;width:2px;background:#e5e7eb;content:""}.flow-step:last-child:before{display:none}.flow-icon{position:relative;z-index:1;display:grid;width:22px;height:22px;margin-top:0;place-items:center;border-radius:50%;background:#d8dbe1;color:#fff;font-size:12px;line-height:1}.flow-icon.send{font-size:14px;font-weight:700}.flow-icon.apply{background:#1677ff}.flow-icon.approval{background:#15a46f}.flow-icon.cc{background:#909399}.flow-content{padding-bottom:22px}.flow-content h3{display:flex;align-items:baseline;flex-wrap:wrap;gap:6px;margin:1px 0 12px;color:#111827;font-size:15px;font-weight:800;line-height:1.4}.flow-content h3 span{color:#606266;font-size:12px;font-weight:700}.flow-empty{margin:-6px 0 24px;border:1px dashed #dcdfe6;border-radius:4px;background:#fafbfc;color:#606266;font-size:13px;line-height:1.6;padding:12px}.people-list{display:flex;flex-wrap:wrap;gap:10px}.person-chip{display:inline-flex;align-items:center;min-height:44px;max-width:160px;gap:9px;border:0;border-radius:4px;background:#f4f5f7;color:#111827;cursor:pointer;font-size:14px;font-weight:700;line-height:1;padding:6px 10px 6px 6px;transition:background-color .16s ease,box-shadow .16s ease,transform .16s ease}.person-chip:hover,.person-chip:focus-visible{background:#eef5ff;box-shadow:0 0 0 2px #1677ff24;outline:none}.person-chip:active{transform:translateY(1px)}.avatar{position:relative;display:grid;width:32px;height:32px;flex:0 0 auto;place-items:center;border-radius:50%;background:#e5e7eb;overflow:hidden}.avatar img{position:absolute;top:0;right:0;bottom:0;left:0;width:100%;height:100%;object-fit:cover}.avatar-placeholder{position:relative;width:18px;height:18px}.avatar-placeholder:before,.avatar-placeholder:after{position:absolute;left:50%;background:#fff;content:"";transform:translate(-50%)}.avatar-placeholder:before{top:1px;width:8px;height:8px;border-radius:50%}.avatar-placeholder:after{bottom:1px;width:16px;height:8px;border-radius:9px 9px 4px 4px}.person-name{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.actions{display:flex;align-items:center;justify-content:center;flex-wrap:wrap;gap:12px;margin:8px 0 0 16px;padding:18px 0 0;border-top:1px solid #edf0f5;background:#fff}.status-text{width:100%;color:#606266;font-size:13px;text-align:center}.status-text.success{color:#1677ff}.status-text.error{color:#d92d20}.primary-button,.secondary-button{height:36px;border-radius:4px;cursor:pointer;font:inherit;font-size:14px;font-weight:700;padding:0 18px;transition:background-color .16s ease,border-color .16s ease,box-shadow .16s ease}.primary-button{border:1px solid #1677ff;background:#1677ff;color:#fff}.primary-button:hover,.primary-button:focus-visible{background:#0f63d7;box-shadow:0 0 0 3px #1677ff24;outline:none}.primary-button:disabled,.secondary-button:disabled{cursor:not-allowed;opacity:.62}.secondary-button{border:1px solid #dcdfe6;background:#fff;color:#111827}.secondary-button:hover,.secondary-button:focus-visible{border-color:#1677ff;color:#1677ff;outline:none}@media(max-width:360px){.approval-panel{padding:22px 16px 32px}.form-row{grid-template-columns:78px minmax(0,1fr);column-gap:12px}.form-row>label{font-size:13px}.table-field,.form-divider{margin-left:0}.actions{justify-content:center;margin-left:0}.page-heading,.template-tabs,.template-title,.tips-block,.loading-state,.error-state{margin-left:0}.template-tabs{grid-template-columns:1fr}.primary-button,.secondary-button{min-width:88px}}
