*{margin:0;padding:0;box-sizing:border-box}body{font-family:-apple-system,PingFang SC,Microsoft YaHei,sans-serif;background:#f5f6f8}.page{max-width:640px;margin:0 auto;min-height:100vh;background:#fff}.header{display:flex;justify-content:space-between;align-items:center;padding:14px 16px;background:#c41e1e;color:#fff}.title{font-size:17px;font-weight:600}.user{font-size:12px;opacity:.9}.pilot-banner{background:#fff7e6;border-bottom:1px solid #ffd591;color:#ad6800;font-size:12px;padding:8px 16px;line-height:1.5}.view-tabs{display:flex;border-bottom:1px solid #eee;background:#fff}.view-tab{flex:1;text-align:center;padding:12px 0;font-size:14px;color:#666;cursor:pointer}.view-tab.active{color:#c41e1e;font-weight:600;border-bottom:2px solid #c41e1e}.steps{display:flex;padding:12px 8px;background:#fff;border-bottom:1px solid #eee;font-size:12px;color:#999}.step{flex:1;text-align:center;position:relative}.step.active{color:#c41e1e;font-weight:600}.body{padding:16px}.upload-box{border:2px dashed #ccc;border-radius:8px;padding:40px 16px;text-align:center;color:#666;cursor:pointer}.upload-icon{font-size:40px;color:#c41e1e}.upload-text{font-size:15px;margin-top:8px}.upload-hint{font-size:12px;color:#999;margin-top:6px}.loading{text-align:center;padding:24px;color:#999}.toolbar{display:flex;gap:8px;margin-bottom:12px;flex-wrap:wrap}.btn{padding:8px 14px;border:1px solid #ddd;border-radius:6px;background:#fff;font-size:14px;cursor:pointer;text-decoration:none;display:inline-block;color:#333}.btn.primary{background:#c41e1e;border-color:#c41e1e;color:#fff}.btn.right{margin-left:auto}.btn.big{width:100%;padding:12px;font-size:16px;margin-top:8px}.btn.small{padding:4px 10px;font-size:13px}.btn:disabled{opacity:.5}.pdf-canvas-wrap{position:relative}.placing-tip{background:#fff7e6;border:1px solid #ffd591;color:#ad6800;border-radius:6px;padding:8px 12px;font-size:13px;margin-bottom:10px}.pdf-canvas{display:block;width:100%;margin-bottom:12px;border:1px solid #eee}.seal-marker{position:absolute;transform:translate(-50%,-50%);width:52px;height:52px;border:2px dashed #c41e1e;border-radius:50%;display:flex;align-items:center;justify-content:center;background:#c41e1e14;z-index:5}.seal-marker.cross{border-radius:50% 50% 50% 0;width:30px;height:60px;border-left:0}.marker-label{font-size:10px;color:#c41e1e}.marker-close{position:absolute;top:-8px;right:-8px;width:18px;height:18px;background:#c41e1e;color:#fff;border-radius:50%;font-size:12px;line-height:18px;text-align:center;cursor:pointer}.sheet-mask{position:fixed;top:0;right:0;bottom:0;left:0;background:#00000073;z-index:20;display:flex;align-items:flex-end}.sheet{width:100%;background:#fff;border-radius:12px 12px 0 0;padding:16px;max-height:70vh;overflow-y:auto}.sheet-title{font-size:16px;font-weight:600;margin-bottom:12px}.group-name{font-size:13px;color:#666;margin:10px 0 6px}.seal-list{display:flex;flex-wrap:wrap;gap:8px}.seal-item{padding:8px 16px;border:1px solid #ddd;border-radius:6px;font-size:14px;cursor:pointer}.seal-item:active{background:#f0f0f0}.preview-img{width:100%;border:1px solid #eee;border-radius:4px;margin-bottom:12px}.form-item{margin-bottom:14px}.form-label{font-size:14px;margin-bottom:6px;color:#333}.req{color:#c41e1e}.field-hint{font-size:12px;color:#999;margin-top:4px}.form-input{width:100%;padding:10px;border:1px solid #ddd;border-radius:6px;font-size:14px}.entity-confirm{padding:10px;background:#fafafa;border:1px solid #eee;border-radius:6px;font-size:14px;color:#333}.hint{font-size:12px;color:#999;text-align:center;margin-top:12px}.filter-row{display:flex;gap:6px;margin-bottom:12px;flex-wrap:wrap}.filter-input{padding:8px;border:1px solid #ddd;border-radius:6px;font-size:13px;flex:1;min-width:100px}.rec-item{display:flex;justify-content:space-between;align-items:center;border-bottom:1px solid #eee;padding:12px 0}.rec-main{flex:1;min-width:0}.rec-file{font-size:14px;color:#333;word-break:break-all}.rec-meta{font-size:12px;color:#999;margin-top:4px}.rec-fail{color:#c41e1e}.rec-actions{margin-left:8px;flex-shrink:0}.empty-hint{text-align:center;color:#999;padding:30px 0;font-size:14px}.pager{display:flex;align-items:center;justify-content:center;gap:12px;margin-top:16px}.pager-info{font-size:13px;color:#666}
